python - 如何使用 Django 从 QuerySet 中提取特定记录?
问题描述
可以说:我有views.py
。这Employees
是具有一些字段的模型类,例如:姓名、电子邮件、通行证、手机等。
def login(request):
if request.method == 'POST':
emp = Employees.objects.filter(email=request.POST['email'],
password=request.POST['password'])
if emp:
# Now here I'm getting confused how to get particular record like id,
# email, pass from emp var to store in session.
request.session['id'] = emp[0].id # here is the main problem
request.session['email'] = emp[0].email
stmt1
stmt2
return redirect('/homepage')
else:
return render(request, 'forms/login.html')
else:
stmt1
stmt2
最后我说这是我想从查询集中得到的提示。请不要问我为什么要进行编码。我可能是错的,所以请忽略我的错误,并给我最好的方法来做到这一点,只有我发现的问题#所以与大家分享。
解决方案
由于您期望返回单个对象,因此您可以在try/except
旁边使用块objects.get()
就像是:
try:
employee = Employee.objects.get(email=request.POST['email'],password=request.POST['password']
return redirect('/homepage')
except Employee.DoesNotExist:
return render(request, 'forms/login.html')
推荐阅读
- linux - 嵌套引号中的 Bash 脚本变量
- python - 使用 Python Scrapy 从“https://realtruck.com/p/rugged-ridge-floor-mats/”获取数据
- string - 有效计算字符串对,它们一起包含所有元音
- angularjs - 如何根据索引获取每一行的选定项?
- python - 从文件夹中读取 excel 文件,从 sheet-1 中提取单元格并将值附加到新的 excel 表中
- python - 张量流中的自定义图层
- mysql - 跨越多行并将它们子串化的 Sql 查询
- python - 将 time.sleep() 函数限制为 python 中的一个循环
- php - MySQL joining tables and returning the latest row from the second table when the comparison is made between identical values
- javascript - Javascript:为什么我必须单击 2 次才能运行该功能?