3 回答
TA贡献1806条经验 获得超8个赞
使用.first()
(或last()
)
one_or_none = M.objects.filter(some_filter_expr).first()
因此,该变量one_or_none
将具有 model 的实例M
或None
您可以按以下方式处理多于货币元素的条件或单独的条件,
my_query_set = M.objects.filter(some_filter_expr)
try:
my_query_set[1]
handle_more_than_one_element()
except IndexError:
try:
my_query_set[0]
handle_only_one_element()
except IndexError:
handle_no_element()
TA贡献1847条经验 获得超7个赞
您可以使用.exists()
检查 中是否存在任何数据my_queryset
,如果有,则使用.get()
获取一个对象。如果有多个对象,则会引发MultipleObjectsReturned
错误。在 except 块中,您可以使用 来处理它more_than_one_object
。
my_query_set = M.objects.filter(some_filter_expr)
try:
if my_query_set.exists()
m = my_query_set.get()
else:
on_zero_objects()
except MultipleObjectsReturned:
more_than_one_object()
TA贡献1827条经验 获得超7个赞
您可以使用来获取单个元素,并处理案例和案例.get()的异常。DoesNotExistMultipleObjectsReturned
from django.core.exceptions import MultipleObjectsReturned
...
try:
model_object = M.objects.get(some_filter_expr)
except M.DoesNotExist:
on_zero_objects()
except MultipleObjectsReturned:
more_than_one_object()
添加回答
举报