python - DoesNotExist at /home/ 好友匹配查询不存在
问题描述
from home.models import Post,Friend
from django.contrib.auth.models import User
class HomeView(TemplateView):
template_name='home/home.html'
def get(self,request):
form=HomeForm()
posts=Post.objects.all().order_by('-created')
users=User.objects.exclude(id=request.user.id)
friend=Friend.objects.get(current_user=request.user)
friends=friend.users.all()
解决方案
好友匹配查询不存在
此错误是因为您的查询为空。.get()
如果查询为空或包含多个结果,将返回错误。.filter()
在适当的条件下使用。
请参阅文档的这一部分。
当.get()
直接返回一个对象时,filter()
返回一个查询集,因此您必须检查查询集是否为空,然后使用queryset.first()
or queryset[0]
。
另一种解决方案是将您包装.get()
在 try/except 块中:
try:
friend=Friend.objects.get(current_user=request.user)
except:
# No Friend was found for this current_user
# Do something
推荐阅读
- powershell - 将所有正在运行的进程写入 PowerShell 中的文本文件
- scala - 在 Scala 中添加两个日期变量
- c# - 验证没有子域的域,需要 TLD,没有 IP,等等?
- reactjs - 在 React.js 中的页面刷新时保留内部状态
- r - 在 R 中构建日期时间列
- batch-file - 如何获得具有绝对路径但具有特定名称规则的列表?(批处理脚本)
- ruby - each_with_index 重复记录
- javascript - 如果 div 包含某些内容,则更改父 div 的 css
- python - 运行 VSCode nodebug 时,当前目录未添加到 sys.path
- forms - Symfony 形式的值对象约束