python - 我遇到了关于 AttributeError 的问题
问题描述
AttributeError at /addpatient_to_db
'QuerySet' object has no attribute 'wardno'
请求方法:POST
请求网址: http: //127.0.0.1 :8000/addpatient_to_db
Django 版本:2.2.5
异常类型:AttributeError
异常值: 'QuerySet' object has no attribute 'wardno'
异常位置:C:\Users\Saurabh Patil\Desktop\SanjeevniHospital\admininterface\views.py in addpatient_to_db, line 114
Python可执行文件: C:\Users\Saurabh Patil\AppData\Local\Programs\Python\Python37\python.exe
Python版本:3.7.4
蟒蛇路径:
['C:\\Users\\Saurabh Patil\\Desktop\\SanjeevniHospital',
'C:\\Users\\Saurabh '
'Patil\\AppData\\Local\\Programs\\Python\\Python37\\python37.zip',
'C:\\Users\\Saurabh Patil\\AppData\\Local\\Programs\\Python\\Python37\\DLLs',
'C:\\Users\\Saurabh Patil\\AppData\\Local\\Programs\\Python\\Python37\\lib',
'C:\\Users\\Saurabh Patil\\AppData\\Local\\Programs\\Python\\Python37',
'C:\\Users\\Saurabh Patil\\AppData\\Roaming\\Python\\Python37\\site-packages',
'C:\\Users\\Saurabh '
'Patil\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages']
服务器时间:2020 年 1 月 26 日星期日 12:07:40 +0000
这是我的代码
视图.py
def addpatient_to_db(request):
if request.method == 'POST':
name = request.POST['name']
age = request.POST['age']
sex = request.POST['sex']
address = request.POST['address']
contno = request.POST['contno']
wardno = request.POST['wardno']
bedno = request.POST['bedno']
doa = request.POST['doa']
docass = request.POST['docass']
pii = request.POST['pii']
alldata = patientdetails.objects.all()
if alldata.wardno == wardno and alldata.bedno == bedno: # <---- This is the issuing line
return render(request, "addpatient.html")
else:
addp = patientdetails(name=name, age=age, sex=sex, address=address, mobno=contno,
wardno=wardno, bedno=bedno, dateofallot=doa, docass=docass, illness_issue=pii)
addp.save()
return redirect('addpatient')
else:
return render(request, 'addpatient.html')
模型.py
from django.db import models
# Create your models here.
class patientdetails(models.Model):
name = models.CharField(max_length=50)
age = models.CharField(max_length=3)
sex = models.CharField(max_length=10)
address = models.CharField(max_length=100)
mobno = models.CharField(max_length=10)
wardno = models.CharField(max_length=3)
bedno = models.CharField(max_length=3)
dateofallot = models.CharField(max_length=10)
docass = models.CharField(max_length=50)
illness_issue = models.CharField(max_length=50)
解决方案
你的问题是在线
alldata = patientdetails.objects.all()
您正在使用返回多个对象的查询集,并且您无法使用多个对象来访问数据库以进行属性化。
所以你应该在这里做的是遍历查询集中的每个项目,然后只访问属性
for eachQueryset in alldata:
if eachQueryset.wardno == wardno and eachQueryset.bedno ==bedno:
return render(request, "addpatient.html")
else:
addp = patientdetails(name=name, age=age, sex=sex,
address=address,mobno=contno,wardno=wardno,bedno=bedno,
dateofallot=doa, docass=docass, illness_issue=pii)
addp.save()
return redirect('addpatient')
这应该可以解决您的问题
推荐阅读
- android - 如何打开android捆绑文件?
- php - 如何使用ajax和jquery在同一页面上显示多个按钮的输出
- python - 如何在 Python 中使用预训练的 CNN 模型
- python - Python计算点之间的距离 - 枚举问题
- python - 我不知道如何设置自动邮件
- javascript - 使用 mongoose 和 nodejs 转换为 Date 失败
- python - 如何删除附加变量的某些str?
- terraform - 使用 count 创建多个资源时使用映射计算的 Terraform 查找本地变量
- ios - iOS Swift Animation 有时无法正常工作
- c - 如何使用封装在源文件之间传递 typedef 的定义?