Ich versuche, Django eingebaute Authentifizierungsmodule zu verwenden. Für die Website, an der ich gerade arbeite, möchte ich E-Mail-Adressen als Login-Namen verwenden und nicht nur die normalen alphanumerischen Felder, auf die sie normalerweise eingestellt sind. Um dies zu tun, habe ich alle String-Felder in E-Mail-Felder geändert und ihre maximale Länge von 30 auf 320 geändert. Mein Registrierungscode scheint gut zu funktionieren, aber nicht mein Login-Code. Hier ist, was ich verwende jetzt:Django-Formulare immer fehlgeschlagen
def login(request):
if request.method == 'POST':
form = AuthenticationForm(request.POST)
if form.is_valid():
return HttpResponse("valid")
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return HttpResponseRedirect("/")
# Redirect to a success page.
else:
return HttpResponse("Disabled Account")
# Return a 'disabled account' error message
else:
return HttpResponse("Invalid Login")
# Return an 'invalid login' error message.
else:
return HttpResponse("%s" % repr(form.errors))
else:
form = AuthenticationForm()
return render_to_response("login.html", {'form': form, }, context_instance=RequestContext(request))
Egal, was ich einreichen, form.is_valid() zurückkehrt FALSCH aber form.errors ist leer. Irgendwelche Ideen, was könnte falsch sein? Ich denke, ich habe alles auf E-Mail-Eigenschaften umgestellt, also glaube ich nicht, dass es das ist. Auch, wenn es etwas ändert, versuche ich dies auf Google App-Engine mit djangoappengine.
können Sie Ihren Code für AuthenticationForm posten? – dannyroa