Привет, люди Stackoverflow,
в моем текущем проекте, у меня следующая структура модели:
class Project(models.Model):
student_id = models.ForeignKey(User)
class_a = models.ForeignKey(ClassA)
class_b = models.ForeignKey(ClassB)
...
class ClassA(models.Model):
teacher_name = models.CharField(...)
class ClassB(models.Model):
teacher_name = models.CharField(...)
ClassA и ClassB очень разные и только они только У меня общее имя учителя, поэтому я держу его в отдельных классах.Кроме того, в каждом проекте только class_a или class_b может содержать ForeignKey (его нельзя назначить двум классам).
Когда я отображаю все проекты и хочу перечислить именаучитель, поэтому я создал небольшую модельную функцию, которая возвращает имя учителя:
def get_teacher_name(self):
if self.class_a:
return self.class_a.teacher_name
if self.class_b:
return self.class_b.teacher_name
Теперь я хочу написать запрос, который возвращает имена учителей для student_id и возвращает имя учителя только один разНапример, для ученика X Project Преподаватель биологии г-жа X Физика г-н Y (-> математику Y следует игнорировать)
Как мне структурировать запрос Django?Я хотел бы сделать Project.objects.filter (student_id = user.pk) .values ('get_teacher_name'). Different (), но это невозможно.Есть ли решение для этого?
Спасибо за ваши предложения!