В django как проверить, существует ли какая-либо запись для запроса
sc=scorm.objects.filter(Header__id=qp.id)
Вот как это было сделано на php
if(mysql_num_rows($resultn)) {
// True condition
}
else {
// False condition
}
python
django
django-views
Халк
источник
источник
Ответы:
Использование
count()
:sc=scorm.objects.filter(Header__id=qp.id) if sc.count() > 0: ...
Преимущество, например
len()
, в том, что QuerySet еще не оценивается:Имея это в виду, стоит прочитать , когда оцениваются 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(): ....
источник
if scorm.objects.filter(Header__id=qp.id).exists()
Начиная с 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")
источник
.objects.get(pk=...)
это сработало для меня!
источник