在 Python 中,如果你的 Django 表单form
中有一个名为 的字段foo
,则不能使用属性访问语法form.foo
来访问该字段;相反,您必须使用form.fields['foo']
.
但是在模板中,您可以(通常会)使用{{ form.foo }}
适用于模板中任何对象的正常属性访问语法来呈现字段。
{{ form.foo }}
当 Pythonform.foo
不工作时,模板为什么/如何工作?Django在渲染模板时是否有点特殊处理?还是我只是误解了一些简单的事情?
编辑:我知道 Django 的模板语言不是 Python,与 Python 有很多不同。我只是好奇为什么{{ form.foo }}
语法有效和/或在表单的情况下它是如何实现的。毕竟,通常模板{{ object.attribute }}
语法确实类似于 Pythonobject.attribute
语法,但在表单的情况下,它似乎被视为一种特殊情况。