Django 验证错误数组

发布于 2024-07-18 19:12:51 字数 359 浏览 10 评论 0原文

我正在使用

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

I am using

rf['email'].errors

As said in docs, I can use it to have array of errors.

[str(e) for e in rf['email'].errors]  #give me ["<django.utils.functional.__proxy__>"]

If repr or str - it gives ul's or string of array.

So it worked only when I used repr and eval together. But I think its stupid solution.

eval(`rf['email'].errors`)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心房的律动 2024-07-25 19:12:51

根据您想要的输出,您有几个选项。

选项一,使用 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]

You have a couple options depending on the output you'd like.

Option one, use the unicode constructor to convert the data:

list_of_error_texts = [unicode(e) for e in rf['email'].errors]

(Django's proxy object implements a method that responds to unicode.)

Option two, get the ErrorList as text. This produces a newline separated list of error text, with each line preceded by an asterisk:

print rf['email'].errors.as_text()
* My error one
* My error two

Option three, use django's force_unicode function. This is like unicode, but has some extra safety features:

from django.utils.encoding import force_unicode
list_of_error_texts = [force_unicode(e) for e in rf['email'].errors]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文