【发布时间】:2016-07-05 13:51:01
【问题描述】:
在 Django 中,MySQL 设置以下查询
data = Recording.objects.get(Q(name='xyz') | Q(name="default"))
这会抛出MultipleObjectsReturned,因为xyz 和default 记录都存在于数据库中,并且MySQL 在OR operation 查询中返回这两个对象。 (这是正确的 MySQL 行为)
在 Django/MySQL 中有没有一种方法,即使 DB 中都存在两个记录,上述查询也只会返回一个对象?
注意:约束是只有 1 个查询应该用于获取数据,并且查询应该首先返回特定对象(即 xyz)。只有当它不存在时,default 对象才应该是返回
【问题讨论】:
-
找到多条要返回哪个?..
-
@sayse 我想要特定(即 xyz)对象存在时,只有当它不存在时我才想要默认对象。