Seite 1 von 1

[Django] UserCreationForm um Emailfeld erweitern

Verfasst: Montag 2. März 2009, 12:30
von fr4
Hallo,

die UserCreationForm hat ursprünglich nur die Felder (benutzername,passwort und passwort bestätigen).

Ich möchte gerne eine Registrierung haben, wo man auch noch eine Emailadresse angeben muss.

Laut der Documentation kann man irgendwie so in der Art:

>>> class UserCreationFormExtended(ModelForm):
... email = model.EmailField()
...
... class Meta:
... model = UserCreationForm()

Felder hinzufügen, klappt jedoch bei mir leider nicht.


ich habs auch schon so versucht:

model:
class UserCreationFormExtended(ModelForm):
class Meta:
model = User
fields = ('email')


def registration(request):
if request.method == 'GET':
registerForm1 = UserCreationForm()
..
registerForm5 = UserCreationFormExtended()
return render_to_response('registration/registration.html',{ 'registerForm1' : registerForm1, 'registerForm5' : registerForm5 })

if request.method == 'POST':
registerResponse1 = UserCreationForm(request.POST)
registerResponse5 = UserCreationFormExtended(request.POST)

if registerResponse1.is_valid() and registerResponse5.is_valid():
userObject = registerResponse1.save(commit = False)
userObject.email = registerResponse5 -> wie kann man auf die Value vom email feld zugreifen?
userObject.save()


hoffe, ich hab mich gut genug ausgedrückt.

Schonmal danke für eure Hilfe.

Verfasst: Montag 2. März 2009, 14:46
von Dauerbaustelle
Hi,

Code bitte in Codeblöcken pasten.
Für dein Problem siehe http://docs.djangoproject.com/en/dev/to ... orms-index.

Du könntest zum Beispiel das Original-Feld erben:

Code: Alles auswählen

class MyUserCreationForm(UserCreationForm):
    email = model.EmailField()

Verfasst: Mittwoch 4. März 2009, 11:06
von fr4
danke für den Tipp,
habs gerade mal so versucht:

Code: Alles auswählen

class UserCreationFormExtended(UserCreationForm):
    email = models.EmailField()
Leider werden im Browser wieder nur die Standartfelder angezeigt

(Benutzername:

Passwort:

Passwort bestätigen: )

Verfasst: Mittwoch 4. März 2009, 12:47
von Dauerbaustelle
Gib mal den Code für das Register-View :)

Verfasst: Mittwoch 4. März 2009, 14:20
von fr4
ok ;)

ich habs jetzt zwar schon anders gelöst (unprofessionell)
aber wäre cool, wenn ich noch andere Möglichkeiten erfahre.

Ich hatte es in etwa so probiert

model:

Code: Alles auswählen

class UserCreationFormExtended(UserCreationForm):
    email = models.EmailField() 


view:

Code: Alles auswählen

def registration(request):
    if request.method == 'GET':
        registerForm1 = UserCreationFormExtended()
        return render_to_response('registration/registration.html',{ 'registerForm1' : registerForm1})
    if request.method == 'POST':
        registerResponse1 = UserCreationFormExtended(request.POST)
        
        if registerResponse1.is_valid():
            userObject = registerResponse1.save(commit = False)
            return render_to_response('registration/registrationConfirmation.html'........
        else:
            return render_to_response('registration/registration.html',{ 'registerForm1' : registerResponse1})