Python 如何在一个视图中组合两个模型表单,并以任意顺序显示字段?
假设我有以下两个Django模型Python 如何在一个视图中组合两个模型表单,并以任意顺序显示字段?,python,django,forms,Python,Django,Forms,假设我有以下两个Django模型 class FruitBasket(models.Model): apple = models.CharField() strawberry = models.CharField() class VegetableGarden(models.Model): celery = models.CharField() turnip = models.CharField() 如果我想为用户创建一个视图,以便以相同的形式创建果篮和蔬菜园
class FruitBasket(models.Model):
apple = models.CharField()
strawberry = models.CharField()
class VegetableGarden(models.Model):
celery = models.CharField()
turnip = models.CharField()
如果我想为用户创建一个视图,以便以相同的形式创建果篮
和蔬菜园
,我可以为每个视图创建一个模型表单
,并将它们传递给我的视图,如下所示:
<form action="" method="post">
{% csrf_token %}
{{ fruit_form.as_p }}
{{ vegetable_form.as_p }}
<input type="submit" value="Submit" />
</form>
{%csrf_令牌%}
{{水果形式.as{p}}
{{蔬菜形式.as{p}}
这将允许用户按顺序输入苹果、草莓、芹菜和萝卜字段
如果相反,我想按萝卜、草莓、芹菜和苹果的顺序展示田地,那会怎么样?我希望避免编写一个全新的
表单
类,因为我必须复制所有验证(clean
函数)。在组合两个表单时,有没有一种方法可以任意决定字段的顺序?{{form.as_p}}
只是显示表单的众多方法之一。您可以使用{{form.name\u of_field}}
语法输出每个字段的小部件:
<form action="" method="post">
{% csrf_token %}
{{ vegetable_form.turnip }}
{{ fruit_form.strawberry }}
{{ vegetable_form.celery }}
{{ fruit_form.apple }}
<input type="submit" value="Submit" />
</form>
{%csrf_令牌%}
{{蔬菜萝卜}
{{水果形式的草莓}
{{蔬菜\芹菜}
{{果形苹果}
请注意,这不会显示错误。个别错误消息在{{form.name\u of_field.errors}}
下可用,您可以使用{{form.errors}}
访问表单错误消息
请参阅,以获取有关该主题的更多信息 谢谢!这正是我想要的。