首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不存在持续时间匹配查询

不存在持续时间匹配查询
EN

Stack Overflow用户
提问于 2022-07-21 10:57:51
回答 2查看 24关注 0票数 1

回溯(最近一次调用):

代码语言:javascript
复制
  File "/home/ahmed/SavannahX/venv/lib/python3.9/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "/home/ahmed/SavannahX/venv/lib/python3.9/site-packages/django/core/handlers/base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/ahmed/SavannahX/venv/lib/python3.9/site-packages/django/contrib/auth/decorators.py", line 23, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "/home/ahmed/SavannahX/app/views.py", line 1352, in yearly_subscription_plans
    duration = Duration.objects.get(name="yearly")
  File "/home/ahmed/SavannahX/venv/lib/python3.9/site-packages/```

django/db/model/Manager.py“,第85行,在manager_method返回getattr(self.get_queryset(),name)(*args,**kwargs)文件的第496行,在get #en0# self.model.DoesNotExist(

代码语言:javascript
复制
Exception Type: DoesNotExist at /yearly/subscriptions/
Exception Value: Duration matching query does not exist.
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-21 11:20:13

您正在使用.get()函数,但它没有找到匹配的对象。这是使用get的危险,如果找不到对象,就会引发异常。相比之下,.filter()函数只返回一个空的查询集。你可以:

  1. 使用get_object_or_404函数,该函数在找不到对象时返回一个404 HTTP响应。

从django.shortcuts导入持续时间= get_object_or_404 (持续时间,pk=pk)

  1. 在尝试/除包装器中封装get()

尝试:Duration.objects.get(name=“一年一度”)除了:#做其他事情,可能返回404……

票数 0
EN

Stack Overflow用户

发布于 2022-07-21 12:42:33

工期=Duration.objects.get(name=“年”)

上面的代码给出了错误,因为如果找不到对象,并且可以按下面的方式处理,get方法将引发"DoesNotExist“

第一方法

Duration.objects.filter(name="yearly").first()

第二种方法

从django.shortcuts导入get_object_or_404

工期=get_object_or_404(工期,pk=pk)

第三种方法

尝试:

Duration.objects.get(name=“年度”)

例外的是:

#请在这里处理的异常

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73064986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档