Форма Джанго и интернационализация - неправильный язык для лейбла

У меня проблема с отображением формы на моем сайте Django.

Моя форма forms.py:

from django import forms
from django.utils.translation import ugettext_lazy as _

class FiltreMonoForm(forms.Form):
    orth = forms.CharField(max_length=255, required=False, label=_('orth').capitalize())

Мой взгляд в views.py:

from .forms import FiltreMonoForm

def monollist(request, page=1):
    if request.GET:
        form = FiltreMonoForm(request.GET.copy())
    else:
        form = FiltreMonoForm()
    return render(request, 'lexics/listemonol.html', locals())

И в моем шаблоне listemonol.html:

{{ form.as_p }}

При отображении моя форма имеет метку "orth" на неправильном языке.

Я добавил переведенную переменную, чтобы убедиться, что она отображается на правильном языке, когда я отображаю ее в своем шаблоне.

У кого-то есть идея, чтобы мой ярлык был на правильном языке?

Спасибо

2 ответа

Решение

Я бы вообще рекомендовал людям не пользоваться .upper() на строки, которые должны быть переведены, и вместо этого полагаться на CSS (например, text-transform: uppercase).

Управление переведенными строками всегда создавало для меня много проблем.

Вы ссылаетесь на ugettext_lazy, используя '_', проблема с оператором импорта..

from django.utils.translation import ugettext_lazy

должно быть

from django.utils.translation import ugettext_lazy as _
Другие вопросы по тегам