Python Django ModelForm-允许添加ForeignKey

Python Django ModelForm-允许添加ForeignKey,python,django,modelform,Python,Django,Modelform,我试图模仿Django管理工具的功能,它允许您为外键添加对象(下拉列表旁边有一个加号图标)。例如,假设我有以下内容: class Author(models.Model): first_name = models.CharField(max_length=100) last_name = models.CharField(max_length=100) class Blog(models.Model): name = models.CharField(max_lengt

我试图模仿Django管理工具的功能,它允许您为外键添加对象(下拉列表旁边有一个加号图标)。例如,假设我有以下内容:

class Author(models.Model):
    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)

class Blog(models.Model):
    name = models.CharField(max_length=50)
    author = models.ForeignKey('Author')
当我使用ModelForm for Blog添加我的第一个博客时,它会在Author旁边显示一个下拉列表。但是,我在系统中没有作者,所以下拉列表是空的。在管理工具中,我相信它会在下拉列表旁边放置一个小“+”图标,这样您可以通过打开弹出窗口快速有效地向下拉列表添加记录


这非常有用,所以我想在我自己的应用程序中使用ModelForms来模拟它。Django的模型表单中是否也内置了此功能?如果是,我如何使用它?我在文档中似乎找不到任何内容。

您需要使用:django.contrib.admin.widgets.RelatedFieldWidgetWrapper

这篇文章肯定会指导你:


这是Django admin中带有ForeignKey字段的模型的默认行为。我不相信有任何文档专门介绍如何创建添加相关模型的链接。我发现我的问题可能有点不清楚,所以我更新了它。我基本上希望在我自己的应用程序中使用ModelForms来模拟Django管理员的行为,并且想知道是否有某种内置的方法可以做到这一点,而不需要我手动编写该行为的代码。你是说没有自定义编码就没有办法做到这一点吗?据我所知,它需要自定义编码,但模仿起来并不困难。他们所做的只是打开一个弹出窗口,创建记录,然后通过JavaScript从子窗口对父窗口执行回调,以使用新值更新select。我非常想更新这个问题,但我将等待提供解决方案的答案被接受。