我有一个Django表单,我试图通过模板显示,但由于一些奇怪的原因,当我尝试自定义模板时,字段属性都不会出现 - 特别是label_tag
和errors
。
当我使用默认显示表单时,它们会显示:
{{ form.as_ul }}
但是当我尝试自定义它时,这些字段不会呈现:
{% for field in form %}
<li>
{{ field.label_tag }}<br/>
{{ field.help_text }}
{{ field }}
{{ field.errors }}
</li>
{% endfor %}
我尝试过显示每个attributes listed in the documentation,这只是field.errors
和field.label_tag
的问题。即使只使用直线field.label
也可以。此外,在其他页面的表单中,这些字段可以使用此方法正确显示。
这可能是什么原因?我可以添加任何其他可能相关的代码,但我不确定哪些内容可能有用,而且我不想在这里不必要地呕吐所有内容。
答案 0 :(得分:0)
我发现了至少部分问题:
我提出的错误是在模型验证中,而不是表单验证。我仍然不确定为什么错误出现在{{ form.as_ul}}
但是没有出现,但我能够通过将验证(clean
方法)移动到表单来解决我自己的问题。
至于label_tag,我仍然不知道问题是什么,但它开始自发地再次运作。
编辑:我刚才弄明白了原因。模型验证与特定字段无关,因此ValidationError
与字段无关,因此不会显示在{{ field.errors }}
中。相反,它与{{ form.non_field_errors }}
中的表单相关联。使用表单添加此标记会显示正确的错误。