В настоящее время я хочу запустить оператор SQL, который отфильтрует мою базу данных, но при этом получит доступ к нескольким таблицам.Из других примеров, которые я читал на этом сайте, все они используют внешние ключи, а не первичный ключ;тем не менее, это мои текущие настройки.У меня есть две проблемы, первая из которых - фильтр SQL.Это мои модели:
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True);
isATutor = models.BooleanField();
timeAvailable = models.CharField(max_length=3);
class TutorProfile(models.Model):
user = models.ForeignKey(User);
language = models.CharField(max_length=30);
unique_together = (("user", "language"), );
class Tutor(models.Model):
user = models.ForeignKey(User);
subject = models.CharField(max_length=30);
unique_together = (("user", "subject"), );
В настоящее время я использую сырой SQL.
def sqlQuery(avail, lang, sub):
from django.db import connection, transaction
cursor = connection.cursor();
cursor.execute("SELECT a.first_name, a.last_name, a.email FROM auth_user a, books_tutor b, books_tutorprofile c, books_userprofile d WHERE a.id = b.user_id AND a.id = c.user_id AND a.id = d.user_id AND b.subject=%s AND c.language=%s AND d.timeAvailable=%s", [sub, lang, avail]);
row = cursor.fetchall();
return row;
timeAvailable принимает трехсимвольную строку в форме 'MAE', где M = утро, A = День, E = Вечер, и если они не нужны, мы заменим на - например, «M--» доступен только утром.
Итак, первая проблема - я бы хотел бытьв состоянии сохранить вышеупомянутый SQL как модель Django.Вторая проблема - мне нужен хороший способ сделать запрос для MAE.Я думаю, что мне, возможно, придется сделать 8 различных частей SQL и объединить их в зависимости от того, что выбрано.
Спасибо,
Стив