-2

Django には、test1、test2、test3、test4 などのカンマ区切りの入力を受け取る TextField を持つフォームがあり、次のように分割されます。

test = request.POST.get('test', '').split(',')

その後、Postgres データベース モデルに保存されます

取得して表示

ただし、表示される場合、返される分割リストは Unicode です。

[u'test1', u'test2', u'test3', u'test4']

希望の代わりに

['test1', 'test2', 'test3', 'test4']

どうしてこれなの?これの問題は、配列の各要素をdjangoテンプレートページに表示する方法がわからないことです-通常の

{% for element in list %}
    <p>{{ element }}</p>
{% endfor %}

動作していません。何かご意見は?

4

1 に答える 1

7

Django はデフォルトで可能な限り Unicode を使用します。一般的に、これは良いことです。

Unicode 文字列を取得する理由は、get()メソッドが分割している Unicode 文字列を返すためです。

これは問題ではありません。Django はどこでも Unicode 文字列を受け入れて処理します。実際、上記のリンク先の Django ドキュメントでは、Python 3.x スタイルに移行し、Unicode をデフォルトの文字列にすることを推奨しています。

バージョン 1.5 から Django コードで行っているように、__future__ライブラリから unicode_literals をコードにインポートすることをお勧めします。次に、特にバイト文字列リテラルを作成する場合は、文字列の前に「b」を付けます。

ループは期待どおりに動作するはずです。

于 2012-06-13T19:12:03.067 に答える