Проверка Django для любого существует для запроса
в django как проверить, существует ли какая-либо запись для запроса
sc=scorm.objects.filter(Header__id=qp.id)
вот как это было сделано в php
if(mysql_num_rows($resultn)) {
    // True condition
    }
else {
    // False condition
    }
2 ответа:
использовать
count():sc=scorm.objects.filter(Header__id=qp.id) if sc.count() > 0: ...преимущество перед, например,
len()является то, что QuerySet еще не оценивается:
count()выполняетSELECT COUNT(*)за кулисами, так что вы должны всегда использоватьcount()вместо того, чтобы загружать все записи в объекты Python и называяlen()на результат.имея это в виду, при вычислении запросов может быть стоит чтение.
если вы используете
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если запрос содержит какие-либо результаты, и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")