在绞尽脑汁好几天之后,我只希望有人能指出我正确的方法。我有 4 个模型:页面、元素、样式和帖子。
这是我的简单 models.py/admin.py 摘录:http ://pastebin.com/uSHrG0p2
2句话:
一个元素引用了 1 个样式和 1 个帖子(2 个 FK)。
一个页面可以引用很多元素,元素可以被很多页面引用(M2M)。
在页面实例的管理站点上,我将 M2M 关系包含为“内联”。这样我就有多行来选择元素实例。一行看起来像:[My Post A with My Style X][V]
我想要的是用 2 个下拉列表替换那个下拉列表。一个包含所有 Post 实例,一个包含所有 Style 实例(就地创建 Element 实例)。这样一行看起来类似于 Element 管理站点:[My Post A][V] [My Style X][V]
听起来很简单,但在阅读和试验了 2 天的 ModelForms、ModelAdmins、Formsets 之后,我完全迷失了。我可以在没有 Django 管理功能中的自定义视图/表单的情况下做到这一点吗?
我的一种方法是像这样从 PageAdminForm 访问 Post/Style 实例,尝试从中手动创建表单小部件......但未能这样做:
p = Page.objects.get(pk=1)
f = PageAdminForm(instance=p)
f.base_fields['elements'].choices.queryset[0].post
有什么建议或提示我需要走哪条路吗?感谢您的时间!