Ich habe ein Formular, das von 2 anderen Formularen erbt. In meinem Formular möchte ich die Bezeichnung eines Felds ändern, das in einem der übergeordneten Formulare definiert wurde. Weiß jemand, wie das gemacht werden kann?
Ich versuche es in meinem zu tun __init__
, aber es wird ein Fehler ausgegeben, der besagt, dass das Objekt '' RegistrationFormTOS '' kein Attribut 'email' hat. Weiß jemand, wie ich das machen kann?
Vielen Dank.
Hier ist mein Formularcode:
from django import forms
from django.utils.translation import ugettext_lazy as _
from registration.forms import RegistrationFormUniqueEmail
from registration.forms import RegistrationFormTermsOfService
attrs_dict = { 'class': 'required' }
class RegistrationFormTOS(RegistrationFormUniqueEmail, RegistrationFormTermsOfService):
"""
Subclass of ``RegistrationForm`` which adds a required checkbox
for agreeing to a site's Terms of Service.
"""
email2 = forms.EmailField(widget=forms.TextInput(attrs=dict(attrs_dict, maxlength=75)), label=_(u'verify email address'))
def __init__(self, *args, **kwargs):
self.email.label = "New Email Label"
super(RegistrationFormTOS, self).__init__(*args, **kwargs)
def clean_email2(self):
"""
Verifiy that the values entered into the two email fields
match.
"""
if 'email' in self.cleaned_data and 'email2' in self.cleaned_data:
if self.cleaned_data['email'] != self.cleaned_data['email2']:
raise forms.ValidationError(_(u'You must type the same email each time'))
return self.cleaned_data