在 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语法,但在表单的情况下,它似乎被视为一种特殊情况。