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

如何获得该对象(如果存在)或“无”(如果不存在)?

宣高朗
2023-03-14
问题内容

当我要求模型管理器获取对象时,如果DoesNotExist没有匹配的对象,它将引发。

go = Content.objects.get(name="baby")

相反的DoesNotExist,我怎么能有go可以None代替?


问题答案:

没有“内置”方式可以做到这一点。Django每次都会引发DoesNotExist异常。在python中处理此问题的惯用方式是将其包装在try catch中:

try:
    go = SomeModel.objects.get(foo='bar')
except SomeModel.DoesNotExist:
    go = None

我所做的是将models.Manager子类化,创建safe_get类似于上面的代码,并将该经理用于我的模型。这样,您可以编写:SomeModel.objects.safe_get(foo='bar')



 类似资料:
  • 问题内容: 我有下表: 如果给定的ID不存在,我想插入具有默认Val的ID。但是,如果它已经存在,我想增加Val的值。 我有以下代码: 并且它可以工作,但是我想用一个SQL语句来完成。我可以吗? 编辑 : 从@ Xikinho90的答案,我的最终代码是 问题答案: 您可以使用插入或替换。 我认为这可以解决问题 您只需要用输入的ID替换数字 谢谢奇科

  • 问题内容: 问题很简单。如何将列添加x到表中y,但仅当x列不存在时才添加?我在这里只找到解决方案,如何检查列是否存在。 问题答案: 是使用“ DO”语句的简短版本: 您不能将它们作为参数传递,您需要在客户端的字符串中进行变量替换,但这是一个自包含的查询,如果该列已经存在,则仅发出一条消息,如果不存在则添加一条消息,并且会因其他错误(例如无效的数据类型)而继续失败。 如果这些方法是来自外部来源的随机

  • 问题内容: 我不知道这是否真的正确。我有一个班级,如果这些字段当前存在,我想在其中更新数据库,如果不存在则要插入。复杂的是,我正在联接3个表(set_colors,school_art,baseimage) 任何帮助都将非常棒。 这是我所拥有的: 问题答案: 我相信您正在寻找以下语法

  • 问题内容: 我在下面有一个SQL插入程序,它工作正常,但是我希望它检查DATE = xxxx,NAME = xxxx和JOB = xxx并更新HOURS(如果它们存在),否则插入新行。SQL可以做到这一点吗? 尝试以下具有相同结果的OR替换,每次都会添加一个新行。 例如: 如果以下内容位于数据库中,并且John要更新其工作时间,它将检查名称,日期,作业是否与尝试插入的值相同,并且它们是否仅更新HO

  • 问题内容: 如果两个值都不存在,如何推入数组?这是我的数组: 如果我尝试使用或再次将其推入数组,我什么都不希望发生…但是如果这两个都不存在,那么我希望它 我怎样才能做到这一点? 问题答案: 您可以使用自定义方法扩展Array原型:

  • 问题内容: 在Session类的JavaDoc中,delete方法的描述为: 从数据存储中删除 持久性实例 。该自变量可以是与接收会话相关联的实例,也可以是具有与现有持久状态相关联的标识符的瞬时实例。 我的问题是: 我想删除一个分离对象,可以使用这种方法吗?AFAIK会话首先使对象从分离中持久化,然后执行其操作。我对吗? 如果不确定数据库中是否存在该对象,是否应该使用Session.get()检查