2

我在用

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`)
4

1 回答 1

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]
于 2009-05-07T18:38:39.110 回答