如何像Django Admin中一样以表格形式创建外键链接字段?

时间:2018-08-03 18:19:38

标签: django django-forms django-admin

在django管理员中,如果两者之间存在关联,则可以从另一个模型中添加,编辑甚至删除对象。

例如,如果我的代码如下:

class Category(models.Model):
    ...

class Product(models.Model):
    ...
    category = models.ForeignKey(Category)

当我使用django管理站点编辑/添加产品时,在类别字段中,我有3个按钮来添加/编辑/删除类别。在新窗口中添加一个,然后提交表单,添加类别,关闭窗口,然后我将返回带有附加类别的产品表单。像这样:

enter image description here

我该如何在普通应用程序(管理员以外)中使用表单?

2 个答案:

答案 0 :(得分:1)

您正在寻找的功能已在this帖子中进行了详细说明。希望有用。

答案 1 :(得分:0)

如果我正确理解了您的问题,则可以执行django管理员的操作,即将add按钮链接到此:

/admin/<your_app>/<your_model>/add/?_to_field=id&_popup=1

,然后使用一些javascript取回刚刚创建的新对象。如果查看contrib/admin/static/admin/js/admin/RelatedObjectLookups.js文件(使用django的代码),则会看到一些函数,这些函数将调用字段的ID传递给弹出窗口(在showRelatedObjectPopup中),然后将选定的字段带回id(在dismissRelatedLookupPopup中)。

这是用于添加新对象,但是您可以查看更改/删除的逻辑。

您可以使用自己的形式复制该逻辑。