我需要使用queryset结果创建一个“if”条件,如下所示:
R"(pattern_here_with_single_escaping_backslashes)"
但是如果查询集不存在,代码永远不会进入条件因为当然会抛出一个django异常,而且,我不确定“is None”在这种情况下是否有效。
我知道解决问题的一种方法是使用try / except来捕获异常,但是我知道是否有另一种方法,所以我可以根据需要使用“if”语句。
提前致谢
答案 0 :(得分:1)
.get()
会引发异常。您可以像这样使用.filter()
和.exists()
的组合:
group_child_qs = Groups.objects.filter(subgroup = kwargs["group_id"])
if group_child_qs.exists():
group = group_child_qs.first()
group.logic_delete()
messages.success(request, "Deleted successfully")
else:
messages.error(request, "It has elements associated")
编辑:
正如@knbk所提到的,这是一个更优化的解决方案
group = Groups.objects.filter(subgroup = kwargs["group_id"]).first()
if group:
group.logic_delete()
messages.success(request, "Deleted successfully")
else:
messages.error(request, "It has elements associated")