繁体   English   中英

Django 数据库未检索用户名/密码

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM