Hul*_*ulk 76 python django django-views
在django中如何检查查询是否存在任何条目
sc=scorm.objects.filter(Header__id=qp.id)
Run Code Online (Sandbox Code Playgroud)
这就是它在php中的表现
if(mysql_num_rows($resultn)) {
// True condition
}
else {
// False condition
}
Run Code Online (Sandbox Code Playgroud)
小智 165
从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")
Run Code Online (Sandbox Code Playgroud)
Fel*_*ing 69
用途count():
sc=scorm.objects.filter(Header__id=qp.id)
if sc.count() > 0:
...
Run Code Online (Sandbox Code Playgroud)
优点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 ...
Run Code Online (Sandbox Code Playgroud)
更新:
它也可以使用exists():
if scorm.objects.filter(Header__id=qp.id).exists():
....
Run Code Online (Sandbox Code Playgroud)
True如果QuerySet包含任何结果,False则返回,否则返回.这尝试以尽可能最简单和最快的方式执行查询,但它确实执行与普通QuerySet查询几乎相同的查询.