Python 在django what';这是form.errors[';field#u name';]和form[';field#u name';]之间的区别。错误?

Python 在django what';这是form.errors[';field#u name';]和form[';field#u name';]之间的区别。错误?,python,django,forms,Python,Django,Forms,3号线和5号线有什么区别?它们有不同的用途吗?当您访问f['message']时。错误,您正在使用该属性 如果查看源代码,可以看到BoundField.errors尝试从表单的错误(如果存在)中获取错误列表 >>> f = ContactForm({'subject': 'Hello', 'message': ''}) >>> f.errors['message'] >>> [u'This field is required.'] >&

3号线和5号线有什么区别?它们有不同的用途吗?

当您访问
f['message']时。错误
,您正在使用该属性

如果查看源代码,可以看到
BoundField.errors
尝试从表单的错误(如果存在)中获取错误列表

>>> f = ContactForm({'subject': 'Hello', 'message': ''})
>>> f.errors['message']
>>> [u'This field is required.']
>>> f['message'].errors
>>> [u'This field is required.']
在字段没有错误的情况下,
BoundField.error
属性返回一个空的错误列表,因此行为略有不同

@property
def errors(self):
    """
    Returns an ErrorList for this field. Returns an empty ErrorList
    if there are none.
    """
    return self.form.errors.get(self.name, self.form.error_class())
在字段上具有此errors属性可以很容易地循环模板中表单的字段,并显示错误

>>> f = ContactForm({'subject': 'Hello', 'message': 'world!'})
>>> f.errors
{}
>>> f.errors['message']
KeyError
>>> f['message'].errors
>>> []
{% for field in form %}
    {{ field }}
    {{ field.errors }}
{% endfor %}