如何在Django Admin中向相关模型添加快速添加链接

时间:2012-02-01 21:16:43

标签: python django django-forms django-admin django-templates

假设有两个类:

class A(models.Model): 
    …

class B(models.Model): 
    a = models.ForeignKey(A) 
    …

为方便在不记住A的情况下添加B,我如何添加链接以在A的更改表单中添加B?

这是this link中提到的解决方案,它建议在B的模型中添加一些代码,但我不认为这样的代码应放在模型中。

更新

内联有问题(或者我没有做到):当内联对象的数量超过max_num属性时,没有新的空白表单来添加新对象。但是,内联对象的数量可能非常大。

1 个答案:

答案 0 :(得分:3)

模型A有一个反向外键到B,因为B有一个外键到A:

  • B()。a是外键
  • A()。bet_set是反向外键

Django提供“内联”来处理反向外键

  1. 用户定义的视图 / 您的代码中的表单上下文中,使用inline model formsets

  2. Django admin 的上下文中,使用{{3>},例如 StackedInline TabularInline

    < / LI>

    如果您不希望从现有对象生成内联formset,则覆盖InlineModelAdmin,返回类似于:YourModel.objects.none()

    的内容。

    这将使内联formset始终为空。如果您只需要一个额外的表单,请设置extra = 1.