Ich versuche, eine Website mit Django zu erstellen, und ich habe mehrere Ansichten, die Logins erfordern. Ich kann jedoch nicht herausfinden, wie Benutzer authentifiziert werden. Ich bin extrem neu in der Webentwicklung (das ist mein erstes Projekt), also bitte nachfragen, wenn ich nicht klar bin. Hier ist ein Code, der Kontext liefern könnten:Ich kann Benutzer in Django App nicht authentifizieren
Auszug aus rushsite/Rush/views.py:
from django.http import HttpResponseRedirect
from django.contrib.auth import authenticate, login
from django.contrib.auth.decorators import login_required
def login_user(request):
if request.method == "POST":
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
return HttpResponseRedirect('list')
else:
return render(request, "registration/login.html")
else:
return render(request, "registration/login.html")
Meine login.html Datei:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body>
<div class="container">
<div class="top">
<h1 id="title" class="hidden"><span id="logo">Delta Sig<span> Recruitment</span></span></h1>
</div>
<div class="login-box animated fadeInUp">
<div class="box-header">
<h2>Log In</h2>
</div>
<form method="post">
{% csrf_token %}
<label for="username">Username</label>
<br/>
<input type="text" id="username">
<br/>
<label for="password">Password</label>
<br/>
<input type="password" id="password">
<br/>
<button type="submit">Sign In</button>
<br/>
<br/>
{% if request.META.HTTP_REFERER == "http://127.0.0.1:8000/login/" %} Incorrect username or password. {% endif %}
</form>
</div>
</div>
</body>
Auszug aus rushsite/Rush/models .py:
Wenn ich auf "Senden" auf meinem Formular klicke, benutze die Anmeldeinformationen, von denen ich weiß, dass sie gültig sind, der Benutzer = None also es leitet mich einfach zurück auf die Login-Seite. Was mache ich falsch?
ich denke, es könnte mit der Tatsache zu tun hat, dass ich einen Bruder Modell, das ein OneToOneField ist mit Benutzer. Ich bin mir nicht ganz sicher, was das bedeutet. –
Können Sie debuggen, dass die Werte, von denen Sie glauben, dass Sie sie posten, tatsächlich in der Ansicht ankommen? – schwobaseggl