У меня есть две таблицы. Первая, это базовая пользовательская таблица. А вторая - таблица под названием «Секция».Django ManyToMany обратный запрос с определенным ключом
def User(models.Model):
...
is_teacher = models.BooleanField(default=False)
...
def Section(models.Model):
...
teachers = models.ManyToManyField(User, related_name="teachers")
students = models.ManyToManyField(User, related_name="students")
is_active = models.BooleanField(default=True)
...
Я хотел бы получить все студенческие пользователь (указанные в таблице пользователя с is_teacher=False
), которые я знаю, можно легко сделать с User.objects.filter(is_teacher=False)
.
Я хотел бы также получить активный раздел (ы) для каждого пользователя.
Но на данный момент я даже не могу получить набор разделов для пользователей.
Я пробовал:
students = User.objects.filter(is_teacher=False)
for s in students:
print s.section_set.all()
Но я получаю сообщение об ошибке, что User
объект не имеет section_set
. Я предполагаю, потому что раздел имеет два много разных отношений с таблицей User (преподаватели и ученики), я, вероятно, должен более четко определить отношения (чтобы следить за учениками, а не учителями). Но я не уверен, как это сделать.
Спасибо. Теперь, чтобы понять реальную цель поля related_names ... – akajb