2

我想了解是否有简单的(DRY)方法可以直接从具有简单视图的模板中的 django 表单显示内联表单集。接受使用 floppyform 或其他 3rd 方应用程序。

假设我们有 2 个(或更多)简单模型,例如:

class ModelA(models.Model):
    field_a_one = models.CharField()
    field_a_two = models.CharField()


class ModelB(models.Model):
    field_rel_a = models.ForeignKey(ModelA)
    field_b_one = models.CharField()

除了 OneToMany 关系,我们还可以使用 ManyToMany 关系。

我想要的最简单的形式是能够在我的模板中执行以下操作:

{{ model_a_form }}

并得到类似的东西:

field_a_one [  input  ]
field_a_two [  input  ]

    field_b_one [   input   ]
    [Delete]

    [ add one more ] 

...类似于管理员中发生的事情。

然后,我想,在视图中,只需要做:

类模型视图(更新视图):

   model = ModelA

并有一个 ModelAForm 来自定义行为,例如。要包括哪些字段,哪个顺序等 - 与 django Forms 一样 - 但包括内联关系及其自定义(例如,默认的 html 模板,如表格或非表格等)。我想这与管理员所做的非常相似。

我在 SO 上找到的最接近的 q/a 是使用模型表单中的 Generic_inlineformset_factory 创建表单,但这并没有提供一体化解决方案。

还有这个:http : //haineault.com/blog/155/ 博客,但是您必须自己在视图中配置表单集。这对我来说似乎并不“干燥”!有更好的解决方案吗?

关于更相关的问题,该问题指向该博客,但对该方法的评论不是很积极:django class-based views with inline model-form or formset

4

0 回答 0