【问题标题】:Django forms Customising model form field labelsDjango 表单自定义模型表单字段标签
【发布时间】:2016-01-22 18:37:44
【问题描述】:

我正在尝试为 django 模型表单自定义标签:

class SupplyTypeForm(forms.ModelForm):
    class Meta:
        model = EUser
        fields = ('service_type', 'online_account')
        labels = {
            'online_account': _('Do you have an online account with any of your suppliers'),
        }

但我得到了错误:NameError: name '_' is not defined

但是 django 文档提到要这样做,所以我不清楚出了什么问题(下划线很奇怪,我不确定为什么在这里使用它)。如果我将其删除,则错误消失

文档拥有它的任何原因:https://docs.djangoproject.com/en/stable/topics/forms/modelforms/#overriding-the-default-fields

【问题讨论】:

  • 您是否进行了正确的导入? from django.utils.translation import ugettext_lazy as _
  • @lambo477 你应该写这个答案!
  • @DerekKwok 谢谢,我已经完成了!

标签: python django django-forms


【解决方案1】:

您需要确保导入正确:

from django.utils.translation import ugettext_lazy as _

【讨论】:

  • 不需要使用'_',如果你不想在你的Django应用程序中支持多语言,你可以完全删除它。如果您愿意,则需要导入,因为它允许我们将翻译文本放在 .py 文件中,以便“django-admin makemessages”可以轻松识别翻译文本的位置。
【解决方案2】:

您应该添加from django.utils.translation import ugettext as _ 以使用_()

【讨论】:

  • 这个也要填吗?
猜你喜欢
  • 2012-12-11
  • 1970-01-01
  • 2015-06-13
  • 2014-01-12
  • 2017-12-17
  • 2012-08-21
  • 2017-05-05
  • 1970-01-01
  • 2018-07-02
相关资源
最近更新 更多