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

必要な出力に応じて、いくつかのオプションがあります。

オプション1、Unicodeコンストラクターを使用してデータを変換します。

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

(Djangoのプロキシオブジェクトは、Unicodeに応答するメソッドを実装します。)

オプション2、ErrorListをテキストとして取得します。これにより、エラーテキストの改行で区切られたリストが生成され、各行の前にアスタリスクが付きます。

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

オプション3、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 に答える