2

forms.py に検索フォームがありました。

class search_form(forms.Form):
    text = forms.CharField( widget = 
        forms.TextInput({ "placeholder": "введите слово" }) ) 

私のフォームヘッダーは

<form action='/search_results/' method='get'>

次に、ベースからプロパティを取得しています

def search_results(request):
    context = {}
    if request.GET:
        form = search_form(request.GET)
        if form.is_valid():
            print form.cleaned_data['text']
            properties = PropertyText.objects.filter(value__icontains = 
                form.cleaned_data['text'])

ラテン語の記号を使用している場合、正しい結果が得られますが、ロシア語の単語を検索しようとすると失敗します。たとえば、単語を入力дляしても (記事全体に表示されます)、結果が得られません。print form.cleaned_data['text']私にいくつかの奇妙なシンボルÑÑоを返します。print request.GET['text']

encode('utf-8')結果を返さずdecode('utf-8')、例外をスローします'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)

私は# -*- coding: utf-8 -*-自分のviews.py、forms.py、urls.py、そして<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />私のテンプレートに持っていました

4

1 に答える 1

1

すべてのテンプレート ファイルが utf-8 エンコーディングで保存されているかどうかを確認します。また、ユニコードデータに関するdjangoドキュメントを読んでください。

于 2012-12-24T12:09:04.483 に答える