[英]Django User cannot login
我做了一個簡單的注冊和登錄腳本,注冊腳本工作並將用戶信息發送到數據庫,但登錄並沒有登錄用戶。
這是views.py中的登錄函數:
from django.shortcuts import render, redirect
from django.http import HttpResponse
from django.contrib.auth.forms import UserCreationForm
from django.contrib import messages
from django.contrib.auth import authenticate, login, logout
from .forms import LoguserForm
# Create your views here.
def loginpage(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect('home')
context = {}
return render(request, 'accounts/login.html', context)
這是 login.html 文件:
<body class="container">
<div class="loginbox">
<form id="login" class="input-group">
{% load static %} <img src="{% static 'accounts/images/logo.png' %}" id="loginlogo">
{% csrf_token %}
<input type="text" class="inputfield" name="username" placeholder="Username">
<input type="password" class="inputfield" name="password" placeholder="Password">
<input type="submit" class="submitbtn" value="Login"></input>
{% for message in messages %}
<p>{{message}}</p>
{% endfor %}
<p1 class="registerp">New here? <a href="/register">Register</a></p1>
</form>
</div>
這是主頁代碼:
def home(request):
return HttpResponse('Home Page')
當我嘗試登錄而不是將我重定向到主頁時,URL 更改為:
您需要在表單標簽中添加操作方法為 POST 和 url,如下所示。
<form action="your-login-endpoint/" id="login" class="input-group" method="post">
{% csrf_token %}
...
</form>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.