No Django, como verificar se existe alguma entrada para uma consulta
sc=scorm.objects.filter(Header__id=qp.id)
Era assim que era feito no php
if(mysql_num_rows($resultn)) {
// True condition
}
else {
// False condition
}
python
django
django-views
Hulk
fonte
fonte
Respostas:
Use
count()
:sc=scorm.objects.filter(Header__id=qp.id) if sc.count() > 0: ...
A vantagem sobre, por exemplo
len()
, é que o QuerySet ainda não foi avaliado:Tendo isso em mente, vale a pena ler quando QuerySets são avaliados .
Se você usar
get()
, por exemploscorm.objects.get(pk=someid)
, e o objeto não existir, umaObjectDoesNotExist
exceção é levantada:from django.core.exceptions import ObjectDoesNotExist try: sc = scorm.objects.get(pk=someid) except ObjectDoesNotExist: print ...
Atualização: também é possível usar
exists()
:if scorm.objects.filter(Header__id=qp.id).exists(): ....
fonte
if scorm.objects.filter(Header__id=qp.id).exists()
A partir do Django 1.2, você pode usar
exists()
:https://docs.djangoproject.com/en/dev/ref/models/querysets/#exists
if some_queryset.filter(pk=entity_id).exists(): print("Entry contained in queryset")
fonte
.objects.get(pk=...)
rotaisso funcionou para mim!
fonte