当前位置: 首页 > 面试题库 >

获取对象时如何处理“不存在匹配查询”

海翼
2023-03-14
问题内容

当我想使用get()函数选择对象时

personalProfile = World.objects.get(ID=personID)

如果get函数不返回查找值,则“不存在匹配查询”。发生错误。

如果我不需要此错误,我将使用try和except函数

try:
   personalProfile = World.objects.get(ID=personID)
except:
   pass

但是我认为这不是自使用以来最好的方法

except:
      pass

请推荐一些想法或代码示例来解决此问题


问题答案:

这取决于你不存在时要执行的操作。

那里get_object_or_404:

在给定的模型管理器上调用get(),但是它引发Http404而不是模型的DidNotExist异常。

get_object_or_404(World, ID=personID)

除了你当前执行的代码外,这与try非常接近。

否则有get_or_create:

personalProfile, created = World.objects.get_or_create(ID=personID)

虽然,如果你选择继续使用当前的方法,则至少要确保将except定位到正确的错误,然后根据需要进行一些处理

try:
   personalProfile = World.objects.get(ID=personID)
except MyModel.DoesNotExist:
    raise Http404("No MyModel matches the given query.")

上面的try / except句柄类似于在文档中找到的get_object_or_404 …



 类似资料:
  • 我正在尝试捕获异常,但无效。以下是我视图中的代码: 我还尝试了:“除了act_edit.DoesNotExist:”但错误仍然存在“活动匹配查询不存在”。你知道吗? 谢谢

  • 我使用的是django-allauth,我用以下细节配置了: 我设置了(因为我将默认站点更改为) 在settings.py中: 当我去: 我得到: 我做错了什么?

  • 问题内容: Python noob,因为这是我的第一个项目,所以请原谅我。 在我单击应用程序上的“注销”之前,该网站运行良好。在那之后,网站会给我这个错误:/ login /的SiteNotExist不存在网站匹配查询。 我到处搜索,获得的唯一解决方案与设置站点框架,SITE_ID等有关。我认为计算机上的这些项目都不错,但是找不到帮助你进行检查的演练/指南。 谁能告诉我问题出在哪里以及如何解决?在

  • Python新手,因为这是我的第一个项目,所以原谅我的不熟悉。 在我点击应用程序上的“注销”之前,该网站一直运行良好。之后,网站会给我这个错误:DoesNotExist at/login/Site匹配查询不存在。 我到处搜索,得到的唯一解决方案是建立站点框架、SITE_ID等。我认为我电脑上的这些项目都很好,但是我找不到一个演练/指南来帮助我检查它们。 有人能告诉我问题是什么以及如何解决它吗?提前

  • db架构包含表AUTHOR和BOOK,列如下: 问题是,对象在没有作者的书时用默认值填充。如何检测左联接没有右表的对象?一种方法是检查图书主键字段是否为空。还有别的办法吗?

  • 我有两个模型,当我要求的时候。POST. get('room_id')或('id')我得到一个错误房间匹配查询不存在.如何解决这个问题?帮我一把 我需要详细的房间请求获取id,预订日期范围(从\u日期到\u日期) 请帮助我,提前谢谢