我正在使用
rf['email'].errors
如文档中所述,我可以使用它来处理错误数组。
[str(e) for e in rf['email'].errors] #give me ["<django.utils.functional.__proxy__>"]
如果是repr或str - 它会给出ul或数组字符串。
所以只有当我一起使用repr和eval时它才有用。但我认为这是一个愚蠢的解决方案。
eval(`rf['email'].errors`)
答案 0 :(得分:2)
根据您想要的输出,您有几个选项。
选项一,使用unicode构造函数转换数据:
list_of_error_texts = [unicode(e) for e in rf['email'].errors]
(Django的代理对象实现了一个响应unicode的方法。)
选项二,将ErrorList作为文本。这将生成一个以换行符分隔的错误文本列表,每行前面都有一个星号:
print rf['email'].errors.as_text()
* My error one
* My error two
选项三,使用django的force_unicode函数。这就像unicode
,但有一些额外的安全功能:
from django.utils.encoding import force_unicode
list_of_error_texts = [force_unicode(e) for e in rf['email'].errors]