首页 > 解决方案 > Django 表单和国际化 - 标签的语言错误

问题描述

在我的 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”标签。

我在视图中添加了一个翻译变量来验证,当我在模板中显示它时,它的语言是正确的。

有人也想用正确的语言给我的标签贴上标签吗?

谢谢

标签: djangoformstranslation

解决方案


您正在使用 '_' 引用 ugettext_lazy ,您的导入语句就是问题所在。

from django.utils.translation import ugettext_lazy

应该

from django.utils.translation import ugettext_lazy as _

推荐阅读