Probleme mit CreateUserForm()

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Laines
User
Beiträge: 39
Registriert: Donnerstag 15. Mai 2008, 18:42

Mittwoch 9. Juli 2008, 20:43

Hier erstmal der Code

Code: Alles auswählen

from django import http
from django import newforms as forms
from django.shortcuts import render_to_response
from dateihochlader.settings import MEDIA_ROOT
from dateihochlader.hochlader import *
from time import strftime
import os.path
from models import dbfile
import hashlib
from django.contrib.auth.decorators import login_required
from django.contrib.auth import logout
from django.contrib.auth.models import User

# Hier habe ich Code abgeschnitten, ich denke er ist für den Fehler nicht relevant

def registrieren(request):
    if request.method == 'POST':
        form = CreateUserForm(request.POST)
        if form.is_valid():
            formdata = form.cleaned_data
            username = formdata["username"]
            password = formdata["password"]
            email = formdata["email"]
            try:
                user = User.objects.get(username = username)
                #eigentlich eine neue Seite
                return HttpResponse("Kann den Nutzer nicht anlegen, da er schon existiert")
            except:
                user = User.objects.create_user(username, email)
                user.set_password(password)
                user.save()
                #und sende vielleicht noch eine Mail
                
                
            return HttpResponseRedirect('/')
    else:
        form = CreateUserForm() ############### <-- Hier ist der Fehler
        return render_to_response("registrierung.html", {'form': form})
Der Fehler ist "global name 'CreateUserForm' is not defined"

Aber oben drüber gings doch genau so???

Ich hoffe ihr könnt mir helfen
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mittwoch 9. Juli 2008, 20:53

Laines hat geschrieben:

Code: Alles auswählen

    if request.method == 'POST':
        form = CreateUserForm(request.POST)
    ...
    else:
        form = CreateUserForm() ############### <-- Hier ist der Fehler
Der Fehler ist "global name 'CreateUserForm' is not defined"

Aber oben drüber gings doch genau so???
Nein. Der erste form = CreateUserForm kommt nur dann zu stande, wenn du die html form abgeschickt hast. Halt beim POST. In allen anderen fällen, kommt es zu dem Fehler nach dem else...

Der Fehler sagt einfach, das CreateUserForm nicht da ist. Hast du die newforms Klasse einfach vergessen zu importieren?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Laines
User
Beiträge: 39
Registriert: Donnerstag 15. Mai 2008, 18:42

Mittwoch 9. Juli 2008, 21:11

Ich habe alle imports die ich gemacht habe mit Kopiert...
Das hier müsste die Zeile sein

Code: Alles auswählen

from django import newforms as forms
Ich hab auch forms.CreateUserForm() ausprobiert, geht auch nicht.
Der Fehler ist dann "'module' object has no attribute 'CreateUserForm'"
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

Donnerstag 10. Juli 2008, 06:15

Ich denke, was du suchst ist `django.contrib.auth.forms.UserCreationForm`.

Außer `CreateUserForm` hast du selber erstellt und vergessen zu importieren :)

MfG EnTeQuAk
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 10. Juli 2008, 07:42

EnTeQuAk hat geschrieben:Ich denke, was du suchst ist `django.contrib.auth.forms.UserCreationForm`.
Im trunk ist das allerdings eine oldforms: http://code.djangoproject.com/browser/d ... y?rev=6617

Erst mit dem newforms-admin branch wird es dann eine newforms sein...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Laines
User
Beiträge: 39
Registriert: Donnerstag 15. Mai 2008, 18:42

Donnerstag 10. Juli 2008, 19:13

Danke für die Antworten!
Bin wohl etwas durcheinander gekommen...
Antworten