0

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.

+0

können Sie Ihren Code für AuthenticationForm posten? – dannyroa

Antwort

0

Entschuldigung, aber Sie können das Authentifizierungsmodul von Django nicht zusätzlich zur Google App Engine verwenden. Django verwendet ein eigenes spezielles Datenbank-Backend, das dem von Google-App-Engine ähnelt, aber nicht Drop-In-kompatibel ist.

Wenn Sie die Authentifizierung auf GAE tun wollen, sollten Sie es die Google-App-Engine Art und Weise tun: http://code.google.com/appengine/docs/python/users/

+0

Danke für Ihre Antwort. Mit djangoappengine kommt jedoch ein vollständiger Port des Authentifizierungsmoduls zur GAE-Plattform, soweit ich weiß: http://www.allbuttonspress.com/projects/djangoappengine#authentication. – blcArmadillo

Verwandte Themen