Django QuerySet的最佳实践

Tri*_*Nhu 1 python django django-models

有没有更好的方法来做到这一点

us = User.objects.filter(id=someid)
if us.exists():
   u = us[0]
Run Code Online (Sandbox Code Playgroud)

正如我在sql日志中看到的那样,us.exists()将执行一个sql查询,然后u = us [0]将执行另一个查询.所以我们必须做2个查询才能完成任务.我只是想要一个更好的方法来做到这一点

Pav*_*sov 6

假设id是独一无二的,你应该请求宽恕,而不是许可:

try:
    u = User.objects.get(id=someid)
except User.DoesNotExist:
    # do whatever you should do if user does not exist
Run Code Online (Sandbox Code Playgroud)