非常に一般的な操作ここではDjangoのテンプレートやUnicode値についての基本的な質問ですね。
よく使用されるケースは、djangoテンプレートに渡されるUnicode値ですが、これらの値は出力できません。フォームをジャンゴするDjangoのテンプレート:UTF-8にUnicodeを変換する - ビルトインされていない
ユーザの入力値は、Unicodeとしてエンコードされている: https://docs.djangoproject.com/en/dev/ref/unicode/#form-submission
したがって、ビューは、一般に、Unicode値で動作します。 これらの値を出力するときは、utf-8としてエンコードする必要があります。 私はdjangoテンプレートでそのエンコーディングをしたいと思いますが、そのための組み込みのフィルターはないようです。例:この投稿では、カスタムフィルタの作成について説明しています。 http://seewah.blogspot.com/2009/11/django-template-urlencode-unicode.html
jinja2でもこのタイプのフィルタが組み込まれていません。
私はテンプレートにオブジェクトを渡すと、そのオブジェクト内の様々な構造にアクセスすることができますが、私は、UTF-8文字列にこれらの構造でUnicode文字列を変換することはできませんので、そう、それはその有用ではないのです!
ここに何か不足していますか?
アップデート(1時間後):
{% for an_obj in list_of_obj %}
<li><a href="/my_url/?send_string={{an_obj.a_unicode_field | urlencode}}">{{an_obj.a_unicode_field}}</a></li>
{% endfor %}
:私はのようなものを持っているDjangoテンプレートで
:
は私がより明確にするためにここにいくつかの擬似コードを入れてみましょうしかし、これは、a_unicode_fieldがユニコード値のときには失敗します。私がしたいのは:
<li><a href="/my_url/?send_string={{an_obj.a_unicode_field | encode: "utf-8" | urlencode}}">{{an_obj.a_unicode_field | encode: "utf-8"}}</a></li>
しかし、組み込みの "エンコード"フィルターはありません。そして、それは非常に一般的な操作です:私は、すべてのテンプレート内のすべての文字列のI出力のために、このUTF-8エンコーディングを行う必要があります...
テンプレートを書くときに、自動的にUTF-8にシリアライズ値ではありませんか? Djangoのドキュメントで[Unicode data](https://docs.djangoproject.com/en/dev/ref/unicode/)を見てください。 –