我在用
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`)
我在用
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`)
根据您想要的输出,您有几个选项。
选项一,使用 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]