2017-02-02 5 views
0

Ich habe versucht, das Authentifizierungssystem von Django zu verwenden, um sich bei einem Benutzer anzumelden. Aber ich kann nicht herausfinden, wie ein User-Objekt zu erstellen, habe ich gerade mit ihm spielen um so weit:Problem beim Zurückgeben eines Benutzerobjekts mit Django

def sign_in(request): 

    form = NameForm(request.POST) 
    if form.is_valid(): 
     post = form.save() 
     post.save() 
     username = request.POST.get(post.question_text) 
     password = request.POST.get(post.id_text) 
     user = authenticate(username=username, password=password) 
     if user is not None: 
      login(request,user) 
      return HttpResponse('hi') 
     else: 
      return HttpResponse('bye') 
    else: 
     form = NameForm() 
    return render(request, 'checkin/sign_in_new.html', {'form': form}) 

Das Programm hält bye zurück. Ich bin mir nicht sicher, was ich als Parameter für request.POST.get() setzen muss, die Django-Dokumentation verwendet 'Benutzername' bzw. 'Passwort'. Muss ich Code schreiben, um den Benutzer zuerst zu erstellen? Ich habe eine in der Django API

Antwort

1

erstellt Der Benutzer existiert nicht. Gehe zu Admin und erstelle zuerst einen. Und ja Benutzer muss erstellt werden, bevor Sie versuchen, sich anzumelden.

+0

Aber wie würde jemand für ein neues Konto beispielsweise anmelden? – Amon

+0

Ich kann nicht in einer Aussage erklären, aber können Sie etwas dagegen lesen http://blog.narenarya.in/right-way-django-authentication.html – kawadhiya21

+0

Ich war tatsächlich auf dieser Website lol. Ich glaube nicht, dass es mir zeigt, wie man einen Benutzer erstellt, es zeigt nur, wie man einen bereits existierenden Benutzer authentifiziert – Amon

0

Okay, ich habe es herausgefunden, ich muss nur die user in meinem Code zuerst erstellen. Habe ich nur noch user = User.objects.create_user('charlie', '[email protected]', 'smith') so jetzt ist es:

def sign_in(request): 
    #we need to handle all the data that was just typed, we'll add a condition for that 
    form = NameForm(request.POST) 
    if form.is_valid(): 
     post = form.save() 
     post.save() 
     username = request.POST.get('username') 
     password = request.POST.get('password') 
     user = User.objects.create_user('charlie', '[email protected]', 'smith') 
     auth = authenticate(username=username, password=password) 
     if user is not None: 
      login(request,user) 
      return HttpResponse('hi') 
     else: 
      return HttpResponse('bye') 
    else: 
     form = NameForm() 
    return render(request, 'checkin/sign_in_new.html', {'form': form}) 
Verwandte Themen