假设我有以下两个模型,每个模型都有自己的form
来创建模型记录。
例如:
Business_Client Model:
busName field - CharField
mainContact field - ForeignKey(Contacts)
Contacts Model:
firstName field - CharField
lastName field - CharField
当用户想要创建新业务时,他们必须从下拉菜单中选择“主要联系人”。但是,如果联系人不在列表中,则必须先创建 记录,然后返回,然后重新 - 再次创建business
记录。
管理界面通过下拉菜单旁边的小+
按钮将您带到Contact
表单,然后填写,点击Save
然后带来您返回到Business
表单, 已经选择了mainContact
字段到您新创建的Contact
记录。
我该怎么做!?!我一直在谷歌周围搜索,我很快就会出现问题。任何人都有一些很好的链接/教程可以让我去?
谢谢!
答案 0 :(得分:1)
我从来没有这样做过,但是想一想:
你有一个观点
/add/business/
带有名称字段和联系字段(旁边有一点加号)。加号只是一个链接,通过指向
的javascript创建新的弹出窗口/add/contact/
并有一个javascript回调。当表单被提交,验证并放入DB时,窗口关闭,id / name被传递回原始表单并自动输入到字段中。
这似乎是django管理员如何做到的。您可以查看django管理员自己使用的小部件:
https://code.djangoproject.com/browser/django/trunk/django/contrib/admin/widgets.py#L218
具有html的渲染函数:
https://code.djangoproject.com/browser/django/trunk/django/contrib/admin/widgets.py#L249
这表明它只是一个锚点链接,带有指向relvant添加视图的onlick javascript弹出窗口。提交表单后,将传回值。