Форма Джанго и интернационализация - неправильный язык для лейбла
У меня проблема с отображением формы на моем сайте 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 _