本文介绍了如何处理“匹配查询不存在”当得到一个对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我想使用get()函数来选择对象,如

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

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



如果我不需要这个错误,我将使用try和except功能

  try:
personalProfile = World.objects.get(ID = personID)
除了:
pass
/ pre>

但是,我认为这不是最好的方式,因为我使用

 除了
通过

请推荐一些想法或代码示例来与这个问题

解决方案

这取决于你想做什么,如果它不存在..



Theres :

get_object_or_404(World, ID=personID)

Which is very close to the try except code you currently do.

Otherwise theres get_or_create:

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

Although, If you choose to continue with your current approach, at least make sure the except is localised to the correct error and then do something with that as necessary

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

这篇关于如何处理“匹配查询不存在”当得到一个对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-30 05:14