python/Django
[Django] QuerySet 의 exists() 와 DoesNotExist
http://portfolio.wonpaper.net
2023. 5. 20. 22:56
Django 코딩할때 자주 쓰이는 QuerySet 의 exists 사용법에 대해 간단히 정리해 둔다.
User.objects.get(pk=id).exists() ( X )
User.objects.filter(pk=id).exists() ( O )
try:
user = User.objects.get(pk=id)
except User.DoesNotExist:
예외처리 내용
위의 내용을 보는바와같이 get() 으로 이용할 때에는 exception 처리가 된다는 점이 포인트이다.
그리고, QuerySet.exists() 가 QuerySet.count() 보다는 훨씬 더 효과적이다
1
2
3
4
5
6
7
|
import models
queryset = models.Hound.objects.filter(pk=1)
if queryset.exists():
return "run away!"
else:
return "coast is clear"
|
cs |
참고 : https://stackoverflow.com/questions/40910149/django-exists-versus-doesnotexist
참고 : https://dev.to/codereviewdoctor/why-queryset-exists-is-more-efficient-than-queryset-count-2f3h