Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django m2m直通模型,带有经典管理小部件_Python_Django_Django Models_Django Admin_Django Widget - Fatal编程技术网

Python Django m2m直通模型,带有经典管理小部件

Python Django m2m直通模型,带有经典管理小部件,python,django,django-models,django-admin,django-widget,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 # ot

我需要定制一个多对多关系的贯穿模型,这种定制是微妙的,因为用户不需要手动操作,我试图通过以下伪代码更好地解释我的用例:

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小部件:

当使用到的through参数指定中间模型时
ManyToManyField
,管理员默认情况下不会显示小部件。这 是因为该中介模型的每个实例都需要更多 在单个小部件中显示的信息,以及布局 多个窗口小部件所需的参数将因中间件而异 模型

参考:

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

所以我的问题是:有没有可能让经典的管理小部件有一个定制的直通模型?如果没有简单的解决方案,也许我可以尝试使用自定义小部件?或者也许有另一种方法来完成我所需要的


PS:显然,这个用例有一个问题:

你能描述一下你希望实现的用户工作流程吗?这是属于管理员的吗(即,您是否应该创建自定义视图以防止最终用户访问超出其需要的内容或使其更简单)?使用@raphv用户交互与经典的多对多管理小部件没有什么不同,我只希望用户从选择列表复选框中选择VPN,然后系统必须自动创建所需内容