提问姿势正确:Django添加数据出现MultiValueDictKeyError

lemuzhi_零度 2021-04-14 09:58:21
数据来源网站用户提交,获取用户提交的数据,并添加到数据库的时候出现错误
错误代码
ob.name = request.POST['name']
报错信息

百度了许多解决方案
方案1 无效 并且出现其他错误:
ob.name = request.POST.get['name'] #加上False也一样

方案2 无效:
ob.name = request.get['name'] #换成('name')也一样

方案3 无效:
ob.name = 'name' in request.POST


我也不知道是那个地方出了问题,那位大佬帮忙看看,顺手解决一下,下面是代码部分
Models.py代码

from django.db import models
from datetime import datetime
# Create your models here.
class Users(models.Model):
name = models.CharField(max_length=32)
sex = models.CharField(max_length=16)
age = models.IntegerField(default=20)
dept = models.CharField(max_length=32)


urls.py代码

from django.urls import path
from . import views
urlpatterns = [
#path('admin/', admin.site.urls),
path('',views.index,name='index'),
#配置users信息操作路由
path('users',views.indexUsers,name='indexusers'),
path('users/add/',views.addUsers,name='addusers'),
path('users/insert/',views.insertUsers,name='insertusers'),
path('users/del/<int:uid>',views.delUsers,name='delusers'),
path('users/edit/<int:uid>',views.editUsers,name='editusers'),
path('users/update',views.updateUsers,name='updateusers'),
]


views.py代码

from django.shortcuts import render
from django.http import HttpResponse
from myapp.models import Users
# Create your views here.

def index(request):
#执行mModel的操作

# 添加数据
# ob = Users()#实例化一个新对象(空对象)
# ob.name = '王五'
# ob.sex = '男'
# ob.age = 33
# ob.dept = 'CC'
# ob.save() #新对象就是添加,已存在对象则是修改

#删除数据
# ob = Users.objects # 获取User的Model对象
# de = ob.get(id=4) # 获取id值为4的数据信息
# print(de.name)
# de.delete() #删除数据

# 修改数据
# ob = Users.objects.get(id=3)
# print(ob.name)
# ob.name = '小刘'
# ob.age = 26
# ob.save()

# 数据查询
# ob = Users.objects
#ulist = ob.all() #all获取所有数据
#ulist = ob.filter(name='张三') #filter过滤数据,获取name值小刘的信息
#ulist = ob.filter(age__gt=20) #获取age值大于20的信息
#ulist = ob.filter(age__gte=20) # 获取age值大于等于20的信息
#ulist = ob.filter(age__lt=20) # 获取age值小于20的信息
#ulist = ob.filter(age__lte=20) # 获取age值小于等于20的信息
#ulist = ob.order_by('age') #按age升序排序
# ulist = ob.order_by('age')[:3] #取age里面的前3条数据
# for u in ulist:
# print(u.id,u.name,u.sex,u.age,u.dept)
return HttpResponse('首页 <br/> <a href="/users">用户信息管理</a>')

#浏览用户信息
def indexUsers(request):
try:
ulist = Users.objects.all()
context = {'userslist':ulist}
return render(request,'myapp/users/index.html',context) #加载模板
except:
return HttpResponse('没有找到用户信息!')
#加载添加用户信息表单
def addUsers(request):
return render(request,'myapp/users/add.html')
#执行用户信息添加
def insertUsers(request):
ob = Users()
#ob.name = 'name' in request.POST
#ob.name = request.get['name']
#ob.name = request.POST.get['name']
ob.name = request.POST['name']
ob.sex = 'sex' in request.POST
ob.age = 'age' in request.POST
ob.dept = 'dept' in request.POST
ob.save()
# context = {'info': '添加成功!'}
# try:
# ob = Users()
# ob.name = request.POST['name']
# ob.sex = request.POST['sex']
# ob.age = request.POST['age']
# ob.dept = request.POST['dept']
# ob.save()
# context = {'info':'添加成功!'}
# except:
# context = {'info':'添加失败!'}
# return render(request,'myapp/users/info.html',context)

#执行用户信息删除
def delUsers(request,uid=0):
ob = Users.objects.get(id=uid) # 获取要删除的数据
de.delete() #删除数据
#加载用户信息修改表单
def editUsers(request,uid=0):
pass
#执行用户信息修改
def updateUsers(request):
pass


还有用户提交信息页面代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" Content="width=device-width,initial-scale=1.0">
<title>Title</title>
</head>
<body>
<center>
<h1>用户信息管理</h1>
<a href="{% url 'indexusers' %}">浏览信息</a>
<a href="{% url 'addusers' %}">添加信息</a>
<hr/>
<h3>添加用户信息</h3>
<form action="{% url 'insertusers' %}" method="get">

<table width="280" border="0">
<tr>
<td>姓名:</td>
<td><input type="text" name="name"/></td>
</tr>
<tr>
<td>性别:</td>
<td><input type="text" name="sex"/></td>
</tr>
<tr>
<td>年龄:</td>
<td><input type="text" name="age"/></td>
</tr>
<tr>
<td>爱好:</td>
<td><input type="text" name="dept"/></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="添加"/>
<input type="reset" value="重置"/>
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
...全文
130 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

10,606

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 其他
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧