无法覆盖Django EmailField标签

时间:2013-10-29 18:30:40

标签: django django-forms django-crispy-forms

我已声明我的注册表单(用户可以选择用户名并设置他的电子邮件; django-allauth的第二步)如下:

class SignupForm(forms.Form):
    def __init__(self, *args, **kwargs):
        super(SignupForm, self).__init__(*args, **kwargs)

        self.helper = FormHelper()
        self.helper.layout = Layout(
            Field('username'),
            Field('email'),
            FormActions(
                Submit('do', u'Reģistrēties', css_class='btn-primary')
            )
        )

        self.fields['username'].label = u'Lietotāja vārds'
        self.fields['email'].label = 'Epasts'

    def save(self, user):
        user.username = self.cleaned_data['username']
        user.email = self.cleaned_data['email']
        user.save()

我遇到的问题 - 我可以覆盖用户名标签,但不能覆盖电子邮件。检查初始电子邮件字段标签会产生None

是否可以覆盖EmailField标签(以及标签的(optional)部分)?我应该完全切换到i18n(如果以这种方式我可以完全控制字段标签,错误信息等)?

1 个答案:

答案 0 :(得分:0)

迁移到i18n后计算出来。如果需要字段标签的硬编码本地化和验证错误消息,则必须从BaseSignupForm进行扩展。但我建议坚持内置本地化。