本文介绍了如何处理“匹配查询不存在”当得到一个对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我想使用get()函数来选择对象,如
personalProfile = World.objects.get(ID = personID)
如果get函数不返回找到一个值,则匹配查询不存在。 错误发生。
如果我不需要这个错误,我将使用try和except功能
try:
/ pre>
personalProfile = World.objects.get(ID = personID)
除了:
pass
但是,我认为这不是最好的方式,因为我使用
除了
通过
请推荐一些想法或代码示例来与这个问题
解决方案这取决于你想做什么,如果它不存在..
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.")
这篇关于如何处理“匹配查询不存在”当得到一个对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!