[英]Django Database not retrieving username/password
图像无法发布某种原因,但它返回两个错误:
用户不存在
用户名或密码无效
似乎 Django 无法访问用户数据库和密码。 密码由数字、字母、大写/小写和一个特殊字符$组成 下面是我在views.py下的LoginPage登录功能
from django.shortcuts import render, redirect
from django.contrib import messages
from django.db.models import Q
from django.http import HttpResponse
from django.contrib.auth.models import User
from django.contrib.auth import authenticate, login, logout
from .models import Room, Topic
from .forms import RoomForm
# Create your views here.
#
# rooms = [
# {'id':1, 'name':'Lets learn Python!'},
# {'id':2, 'name':'Design with me!'},
# {'id':3, 'name':'Front End Devs!'},
#]
def loginPage(request):
if request.method == 'POST':
password = request.POST.get('password')
username = request.POST.get('username')
try:
user = User.objects.get(username=username)
except:
messages.error(request, 'User does not exist')
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect('home')
else:
messages.error(request, 'Username OR Password not Valid')
context = {}
return render(request, 'base/login_register.html', context)
Login_Register.html 页面代码 -
{% extends 'main.html' %}
{% block content %}
<div>
<form method="POST" action="">
{% csrf_token %}
<label>Username:</label>
<input type="text" value="username" placeholder='Enter Username..' />
<label>Password:</label>
<input type="password" value="password" placeholder='Enter Password..' />
<input type="submit" value="login" />
</form>
</div>
{% endblock content %}
您必须在表单输入字段中添加名称:
<form method="POST" action="">
{% csrf_token %}
<label>Username:</label>
<input type="text" name="username" placeholder='Enter Username..' />
<label>Password:</label>
<input type="password" name="password" placeholder='Enter Password..' />
<input type="submit" value="login" />
</form>
否则它将返回空值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.