作者left (881 forever)
看板Python
标题[问题] Django form的问题
时间Mon Aug 21 10:55:23 2017
小的在trace前人遗留下来的程式码
看到Django forms.py的地方
程式码如下
我有一个地方不解的是下面这一行code
mail = forms.EmailField(label=_("Email"))
我的问题是label=_("Email")
这里不是只要用label="Email"就好了
前人为啥要写成label=_("Email")?
然後我一般的python shell try一下label=_("Email")
得到如下的结果
>>> label=_("Email")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name '_' is not defined
label=_("Email")到底在Django的form里面是表示啥啊?
class ResetPasswordForm(forms.Form):
mail = forms.EmailField(label=_("Email"))
def clean_mail(self):
mail = self.cleaned_data['mail']
if mail:
try:
user = User.objects.get(email=mail)
except User.DoesNotExist:
raise forms.ValidationError("此电子信箱不存在")
return self.cleaned_data['mail']
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 211.20.56.157
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1503284127.A.B08.html
1F:→ petitbleu: 这看起来是 gettext, i18n 用 08/21 11:13
2F:→ djshen: 看import 08/21 11:19
3F:推 billy0131: 未看先猜 from django.utils.translation \ 08/21 12:41
4F:→ billy0131: import ugettext_lazy as _ 08/21 12:41
5F:推 frank910138: I18n 08/21 12:47
6F:→ left: 应该是大家所说的,不过这要怎麽使用啊?有范例吗? 08/21 14:19
7F:→ left: 如果我用的是中文 那麽 'Email'会变成'信箱'的意思吗? 08/21 14:20
9F:→ Falldog: 基本上就是GNU gettext的用法 只是Django有包装一下 08/21 22:29