[python] Django는 쿼리에 대해 존재하는지 확인합니다.
장고에서 쿼리에 대한 항목이 있는지 확인하는 방법
sc=scorm.objects.filter(Header__id=qp.id)
이것은 PHP에서 수행 된 방법이었습니다.
if(mysql_num_rows($resultn)) {
// True condition
}
else {
// False condition
}
답변
사용 count()
:
sc=scorm.objects.filter(Header__id=qp.id)
if sc.count() > 0:
...
예를 들어 장점 len()
은 QuerySet이 아직 평가되지 않았다는 것입니다.
count()
SELECT COUNT(*)
뒤에서 수행 하므로count()
모든 레코드를 Python 객체에로드len()
하고 결과를 호출 하는 대신 항상을 사용해야 합니다.
이것을 염두에 두면 QuerySets가 평가 될 때 읽을 가치가 있습니다.
get()
예를 들어 를 사용 scorm.objects.get(pk=someid)
하고 객체가 존재하지 않으면 ObjectDoesNotExist
예외가 발생합니다.
from django.core.exceptions import ObjectDoesNotExist
try:
sc = scorm.objects.get(pk=someid)
except ObjectDoesNotExist:
print ...
업데이트 : 다음
을 사용할 수도 있습니다 exists()
.
if scorm.objects.filter(Header__id=qp.id).exists():
....
True
QuerySet에 결과가 포함되어False
있는지 여부 와 그렇지 않은 경우 반환 합니다 . 이것은 가능한 한 가장 간단하고 빠른 방법으로 쿼리를 수행하려고 하지만 일반 QuerySet 쿼리와 거의 동일한 쿼리를 실행합니다.
답변
Django 1.2부터 다음을 사용할 수 있습니다 exists()
.
https://docs.djangoproject.com/en/dev/ref/models/querysets/#exists
if some_queryset.filter(pk=entity_id).exists():
print("Entry contained in queryset")
답변
이것은 나를 위해 일했습니다!
if some_queryset.objects.all (). exists () : print ( “이 테이블은 비어 있지 않습니다”)