过滤并获取VS Q()

时间:2019-10-14 21:49:22

标签: django

使用之间是否存在性能差异?

Transaction.objects.filter(profile=request.user).get(id=transaction_id)

VS

Transaction.objects.filter(Q(profile=request.user) & Q(id=transaction_id)).first()

VS

这是第一个选项的扩展,但可以处理找不到交易的情况。

get_object_or_404(Transaction.objects.filter(profile=request.user), id=transaction_id)

如果第二个选项更好,是否有办法像Django魔术那样实现第三个选项一样的检查,还是我需要做一个基本的Try and Except?

0 个答案:

没有答案