0

私は django と dajax を使用するのが初めてで、英語以外の文字を使用しているときに dajax.assign を使用して別の html の div に html ファイルをロードするのに問題があります。サイトの言語を英語に設定すると問題なく動作しますが、スペイン語に切り替えると、そうではありません。

これが私がやっていることです:

私は試した :

dajax.assign('#setttabs-1','innerHTML','abc')

そしてそれはうまくいきます。div はテキストを正しく表示しますが、試してみると (サイトの翻訳をしようとしています):

dajax.assign('#setttabs-1','innerHTML','ábcñ')

それは例外を生成します:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 465: ordinal not in range(128)

私は行ってグーグルで検索を行い、これを見つけました:

dajax.assign('#setttabs-1','innerHTML','ábcñ'.decode('utf-8'))

これも正しく機能し、すべての文字が正しく表示されます。問題は、上記の div にテンプレートをロードする必要があるため、以下が機能しないことです。

dajax.assign('#setttabs-1','innerHTML',render_to_response('./settings/_change_language.html'.decode('utf-8'), context_instance=RequestContext(request)))

テンプレートをロードしようとすると、上記の例外もスローされます。テンプレートにはエンコーディング メタがあります。

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

私のajax.pyも次で始まります:

# coding: utf-8

このファイルを正しくレンダリングできるように、このファイルを utf-8 として扱うように dajax に指示するにはどうすればよいですか? 私がここでやろうとしていることを行うためのより実用的な方法はありますか? 本当に単純なものが欠けているような気がしますが、理解できません。ご協力いただきありがとうございます。

4

1 に答える 1

0

私が変更され:

dajax.assign('#setttabs-1','innerHTML',render_to_response('./settings/_change_language.html'), context_instance=RequestContext(request)))

に:

dajax.assign('#setttabs-1','innerHTML',render_to_string('./settings/_change_language.html'.decode('utf-8'), context_instance=RequestContext(request)))

そして今、それは完全に機能します。でも理由はわかりません。これが誰かを助けてくれることを願っています。

于 2011-11-10T18:20:59.323 に答える