Django m2m通过模型与经典管理小部件

时间:2016-08-22 09:53:14

标签: python django django-models django-admin django-widget

我需要自定义多对多关系的直通模型,自定义很微妙,因为用户不需要手动操作,我尝试通过解释我的用例来更好地解释自己遵循伪代码:

RouterConfiguration
- vpn (many-to-many through VpnClient)
# other fields

VpnClient
- router: ForeignKey to RouterConfiguration
- vpn: ForeignKey to Vpn
- cert: ForeignKey to Cert

Vpn
# other fields

Cert
# (stores x509 certificates)
# other fields

直通模型VpnClient只有一个附加字段ForeignKeyCert,但我希望VpnClient能够在没有用户的情况下自动创建Cert个实例互动,直到这里没有问题。

问题出现在Django Admin中,因为据我所知,使用直通模型时不可能使用经典的many2many小部件:

  

使用to参数指定中间模型时   ManyToManyField,管理员默认情况下不会显示小部件。这个   是因为该中间模型的每个实例都需要更多   可以在单个小部件中显示的信息和布局   多个小部件所需的内容因中级而异   模型。

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

但我不希望用户插入任何额外信息。我只是希望能够控制模型,以便它可以自动执行一系列操作。

所以我的问题是:是否可以通过自定义直通模型获得经典的管理小部件?如果没有简单的解决方案,我可以尝试使用自定义小部件吗?或者也许有另一种方法可以实现我的需要?

PS :显然有这个用例的票证:https://code.djangoproject.com/ticket/12203

0 个答案:

没有答案