2016-12-16 2 views
0

Я создаю веб-приложение, чтобы помочь мне управлять своими классами. Таким образом, у меня есть модель класса и модель студента, и я хочу, чтобы каждый класс, чтобы иметь несколько студентов, и я хочу, чтобы каждый студент, чтобы иметь возможность поступить в нескольких классах:Django Many-To-Many Отношения между двумя моделями

class Class(models.Model): 

name = models.CharField(max_length=30) 
enrolled_students = models.ManyToManyField('Student', blank=True) 

... 

class Student(models.Model): 
enrolled_classes = models.ManyToManyField(Class, blank=True) 

Это работает просто отлично, но это утомительно. Я создаю класс, а затем создаю ученика и добавляю зарегистрированный класс. И тогда я должен пойти ВЕРНУТЬСЯ в класс и зачислить ученика. Как автоматизировать этот процесс, чтобы Django автоматически отслеживал, какие студенты участвуют в классах и в каких классах учатся студенты?

Я уверен, что есть что-то простое, что мне не хватает или не понимаю.

ответ

0

Нет необходимости делать это вообще. Все поля отношений, включая много-ко-многим, автоматически добавляют обратный аксессуар. Просто определите поле с одной стороны отношения; например, если вы определяете его в классе, вы можете обратиться к классам, в которые студент зарегистрирован как my_student.class_set.all().

+0

Уход! Я собираюсь попробовать это прямо сейчас. – SirYancy

+0

[Документация] (https://docs.djangoproject.com/en/1.10/ref/models/relations/) перечисляет способы доступа к связанным объектам через разные поля отношений. –

Смежные вопросы