“添加新”到django模型中的外键字段

时间:2012-07-20 21:56:35

标签: django django-forms

我对此很陌生,如果我不清楚就道歉......

运行django,使用bootstrap,我一直在摆弄django-bootstrap。 BootstrapModelForm很酷,我没有在我的例子中包含django-bootstrap的东西,但我应该注意。

我有模特:

class spam(models.Model):
   name = models.CharField()

class Eggs(models.Model):
   spam = models.ForiegnKey('spam')

我使用了一个模型,如:

class EggsForm(forms.ModelForm):
   meta:
      model=Eggs

EggsForm允许选择鸡蛋引用哪些垃圾邮件。 我注意到管理界面有一个很酷的方式来选择或添加另一个鸡蛋。

如何在创建表单中使用类似的功能?

3 个答案:

答案 0 :(得分:1)

为什么不为此使用标准表单(不是ModelForm)?添加“添加新”作为额外选项并在表单的clean()方法中捕获它,然后您应该创建新对象,重定向到另一个表单等。

答案 1 :(得分:1)

有点晚了,但是我在寻找解决方案的同时遇到了这个问题,并且有更多的互联网冒险,我发现这个链接上的说明非常棒而且确实很有问题: http://www.hoboes.com/Mimsy/hacks/replicating-djangos-admin/

答案 2 :(得分:0)

在您的模板中,您可以添加一个新的(或“+”)按钮,该按钮可以重定向或显示弹出窗口,或显示另一个表单以添加新的Egg