Django开发用户模块,需要进行用户登录时区分不同角色,却出现了这样的问题**_MultiValueDictKeyError at /account/user
'userid'**_
不知道是什么原因造成的,查了很多文章也没有解决当前的问题,希望得到大家的帮助
具体代码如下:
models.py
from django.db import models
# Create your models here.
from django.contrib.auth.models import Group
from django.contrib.auth.models import User
class User2(models.Model):
id = models.AutoField(primary_key=True)
userid = models.CharField(max_length=20)
password = models.CharField(max_length=15)
status = models.CharField(max_length=15,null=True)
def __str__(self):
# 在Python3中使用 def __str__(self):
return self.userid
def __str__(self):
# 在Python3中使用 def __str__(self):
return self.password
def __str__(self):
# 在Python3中使用 def __str__(self):
return self.status
login.html
<!DOCTYPE html>
<html lang="en">
{% load static %}
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<!-- CSS -->
<link rel='stylesheet' href='http://fonts.googleapis.com/css?family=PT+Sans:400,700'>
<link rel="stylesheet" href="{% static 'css/reset.css' %}">
<link rel="stylesheet" href="{% static 'css/supersized.css' %}">
<link rel="stylesheet" href="{% static 'css/style1.css' %}">
<script src="{% static 'js/jquery-1.8.2.min.js' %}"></script>
<script src="{% static 'js/supersized.3.2.7.min.js' %}"></script>
<script src="{% static 'js/supersized-init.js' %}"></script>
<script src="{% static 'js1/scripts.js' %}"></script>
</head>
<body>
<div class="page-container">
<h1 style="color: #0b0d0c">欢迎您登录</h1>
<form method="POST" action="{% url 'account:user' %}" onsubmit="return eg.regCheck();">
{% csrf_token %}
<div class="logGet">
<input type="text" placeholder="Username" id="userid" name="userid" autofocus />
<input type="password" placeholder="Password" id="userpwd" name="password"/>
<button type="submit">登录</button>
</div>
</form>
</div>
<script>
var eg = {};
eg.$ = function(id){
return document.getElementById(id);
};
eg.regCheck = function(){
var uid = eg.$("userid");
var upwd = eg.$("userpwd");
if(uid.value ==''){
alert('账号不能为空!');
return false;
}
if(upwd.value ==''){
alert('密码不能为空!请输入密码!!!');
return false;
}
return true;
};
</script>
</body>
</html>
views.py
def user(request):
# try:
Userid = request.POST['userid']
Password = request.POST['password']
request.session["name"] =Userid
# context={}
# context['userid']=userid
# request.session['msg']=context
print(Userid)
print(Password)
# return render(request, 'index.html', {})
user = User2.objects.filter(userid=Userid, password=Password)
print(user)
if user:
for users in user:
if users.status == 'C':
return render(request, 'project/index.html', {})
if users.status == 'T':
return render(request, 'book/book_detail.html', {'user': user})
else:
return render(request, 'Work1-1.html', {'msg': '用户名或密码不正确'})
# except:
# return render(request, 'login.html', {'msg': None})
def enroll(request):
return render(request, 'enroll.html', {})
def test(request):
#user_name = request.POST.get("userid", None)
#user_password = request.POST.get("password", None)
#status = request.POST.get("status",None)
user_name = request.POST['user_name']
user_password = request.POST['user_password']
status = request.POST['status']
## user_name=request.POST.get("userid",None)
## user_password=request.POST.get("password",None)
from account.models import User2
from account import models
User2.objects.create(userid=user_name, password=user_password, status=status)
info_list = models.User2.objects.all()
return render(request, 'login.html', {"info_list": info_list})
希望能得到帮助,着急!