当我在这两个模型之间定义ManyToMany关系时:
class A (models.Model):
pass
class B (models.Model):
a = models.ManyToManyField(A)
Django生成两个管理部分,每个模型一个。在B形式中,我可以直接创建一个A对象,这要归功于ManyToMany关系(并且由于A形式中的一个字段弹出一个B形式)。
如果我使用ForeignKey,是否可以重现此行为?这是我的用例:
class A (models.Model):
pass
class B (models.Model):
a = models.ForeignKey(A)
class C (models.Model):
b = models.ForeignKey(B)
因此,用户可以直接从A表单创建相关的B对象,并从这些表单中创建没有嵌套表单的C对象(使用" popping"表单)。
TL; DR:基本上绕过了缺乏django嵌套表单。
谢谢!
答案 0 :(得分:1)
是的,它是可行的,但只能通过弹出窗口(已经在管理员中使用django构建),如果你想直接在表单中编辑远程对象(C),那么你需要在管理员中进行更改,例如创建特殊视图,分配适当的查询等。 另请注意,您需要使用admin注册所有3个模型,否则您只能访问(弹出)注册的模型。