我需要自定义多对多关系的直通模型,自定义很微妙,因为用户不需要手动操作,我尝试通过解释我的用例来更好地解释自己遵循伪代码:
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
只有一个附加字段ForeignKey
到Cert
,但我希望VpnClient
能够在没有用户的情况下自动创建Cert
个实例互动,直到这里没有问题。
问题出现在Django Admin中,因为据我所知,使用直通模型时不可能使用经典的many2many小部件:
使用to参数指定中间模型时
ManyToManyField
,管理员默认情况下不会显示小部件。这个 是因为该中间模型的每个实例都需要更多 可以在单个小部件中显示的信息和布局 多个小部件所需的内容因中级而异 模型。
但我不希望用户插入任何额外信息。我只是希望能够控制模型,以便它可以自动执行一系列操作。
所以我的问题是:是否可以通过自定义直通模型获得经典的管理小部件?如果没有简单的解决方案,我可以尝试使用自定义小部件吗?或者也许有另一种方法可以实现我的需要?
PS :显然有这个用例的票证:https://code.djangoproject.com/ticket/12203