質問

I have declared my signup form (in which user can choose a username and set his email; second step for django-allauth) as follows:

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()

The problem I'm having - I can override username label but not email. Checking initial email field label yields None.

Is it possible to override EmailField label (and (optional) part of label)? Should I switch to i18n altogether (if in that way I can fully control field labels, error messages etc.)?

役に立ちましたか?

解決

Figured it out after I migrated to i18n. You have to extend from BaseSignupForm if you want hardcoded localiziation of field labels and validation error messages. But I'd recommend to stick with built in localization.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top