W django, jak sprawdzić, czy istnieje wpis dla zapytania
sc=scorm.objects.filter(Header__id=qp.id)
Tak to zostało zrobione w php
if(mysql_num_rows($resultn)) {
// True condition
}
else {
// False condition
}
python
django
django-views
Ponton
źródło
źródło
Odpowiedzi:
Zastosowanie
count()
:sc=scorm.objects.filter(Header__id=qp.id) if sc.count() > 0: ...
Zaletą nad np.
len()
Jest to, że zestaw QuerySet nie jest jeszcze oceniany:Mając to na uwadze, warto przeczytać , kiedy QuerySets są oceniane .
Jeśli użyjesz
get()
npscorm.objects.get(pk=someid)
, a obiekt nie istnieje,ObjectDoesNotExist
zostanie zgłoszony wyjątek:from django.core.exceptions import ObjectDoesNotExist try: sc = scorm.objects.get(pk=someid) except ObjectDoesNotExist: print ...
Aktualizacja: można również użyć
exists()
:if scorm.objects.filter(Header__id=qp.id).exists(): ....
źródło
if scorm.objects.filter(Header__id=qp.id).exists()
Od wersji Django 1.2 możesz używać
exists()
:https://docs.djangoproject.com/en/dev/ref/models/querysets/#exists
if some_queryset.filter(pk=entity_id).exists(): print("Entry contained in queryset")
źródło
.objects.get(pk=...)
trasato działało dla mnie!
źródło