2016-04-08 94 views
2

我創建了以下型號:Django管理註冊多對多中間模型

class Child(models.Model): 
    some_var = models.CharField() 

class Parent(models.Model): 
    m2m = models.ManyToManyField(Child) 

的Django自動創建名爲ParentChild背景的中介模式。現在,我想在Django Admin中註冊該中介模型。那可能嗎?如果是這樣,怎麼樣?或者它只適用於through="ThroughModel"

+0

權,Django的如此規定https://docs.djangoproject.com/es/1.9/topics/db/models/#extra-fields-on-many-to-many-relationships和工作管理員https://docs.djangoproject.com/zh/dev/ref/contrib/admin/#working-with-many-to-many-intermediary-models –

回答

2

你必須通過模型使用這個。 基本上Django只在db中創建中間表,而不是模型。所以你需要定義Model類來在Admin中註冊它。

https://docs.djangoproject.com/en/1.9/ref/contrib/admin/#working-with-many-to-many-intermediary-models

+0

太糟糕了,我希望避免通過模式。謝謝! –

+0

@ÖzerS。您可以爲現有的表定義模型類。創建'ParentChild'模型將它傳遞爲''through' kwarg,創建遷移並僞造它。這可能有點棘手 - 但最終你會得到一致的遷移,並且不會丟失數據。 – crash843