猿问

在表单中引用模型属性

我希望在单个页面上同时编辑多个模型。我没有使用表单集,而是让它与我在视图中的模板中循环的表单数组一起使用:


{% extends 'app_base.html' %} {% block content %}

<p>{{message}}</p>

<form method="post">{% csrf_token %} {% for form in forms %}{{ form.as_p }}{% endfor %}

    <input type="submit" value="Submit" />

</form>

{% endblock %}

但是,烦人的是,我无法在输出中看到我正在编辑的内容,因为它只是一堆没有标签的文本框。


因此,有什么方法可以在我循环时访问表单旁边的模型属性,例如:


{% for form in forms %}{{form.object.name}}: {{ form.as_p }}{% endfor %}


郎朗坤
浏览 188回答 1
1回答

白衣染霜花

如果您ModelForm对所有表单都使用 a&nbsp;,则需要使用正在更新的模型实例 (&nbsp;MyForm(data=request.POST, instance=...))对其进行初始化。您可以访问instance表单的 ,它只是表单上的一个属性:form.instance。请注意,它始终存在于 上ModelForm,即使您instance在初始化时没有传递 an&nbsp;。在这种情况下,它是表单模型的初始化实例,而不是保存实例。所以form.instance.pk = None在那种情况下。
随时随地看视频慕课网APP

相关分类

Python
我要回答