我现在读了很多关于ugettext和ugettext_lazy的文章。我理解_lazy主要用于这些事情:
ugettext for these:
(Source)
但是我仍然不确定,如果ValidationError也可以用ugettext_lazy完成吗?
from django.utils.translation import ugettext as _
def check_if_form_is_empty(self):
[...]
if not quantities:
raise forms.ValidationError(
_("You didn't choose any tickets."), # TODO _ for translations
code='no_tickets',
)
答案 0 :(得分:0)
你还没有真正理解ugettext_lazy
的观点。这适用于您还不知道当前语言是什么的地方;特别是在类级属性中,例如模型和表单上的字段。在定义的那一点上没有请求,所以你必须使用惰性方法。
您的代码位于方法内部,虽然您没有显示它的调用位置,但它似乎是某种验证,只会在用户操作的上下文中调用。所以不,你不需要在这里使用惰性方法。