2016-12-16 153 views
0

我正在構建一個web應用程序來幫助我管理我的類。所以我有一個類模型和學生模型,我希望每個班有多個學生,我希望每個學生能在多個類報名:Django兩個模型之間的多對多關係

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

根本沒有必要這樣做。所有關係字段(包括多對多)都會自動添加一個向後訪問器。只需在關係的一側定義字段;例如,如果您在Class上定義它,則可以參考學生註冊的課程my_student.class_set.all()

+0

整潔!我現在要試試這個。 – SirYancy

+0

[文檔](https://docs.djangoproject.com/en/1.10/ref/models/relations/)列出了通過不同的關係字段訪問相關對象的方法。 –

相關問題