Dalam django bagaimana memeriksa apakah ada entri untuk query
sc=scorm.objects.filter(Header__id=qp.id)
Beginilah cara melakukannya di php
if(mysql_num_rows($resultn)) {
// True condition
}
else {
// False condition
}
Dalam django bagaimana memeriksa apakah ada entri untuk query
sc=scorm.objects.filter(Header__id=qp.id)
Beginilah cara melakukannya di php
if(mysql_num_rows($resultn)) {
// True condition
}
else {
// False condition
}
Jawaban:
Penggunaan count()
:
sc=scorm.objects.filter(Header__id=qp.id)
if sc.count() > 0:
...
Keuntungan dari contoh len()
adalah, QuerySet belum dievaluasi:
count()
melakukan diSELECT COUNT(*)
belakang layar, jadi Anda harus selalu menggunakancount()
daripada memuat semua record ke dalam objek Python dan memanggillen()
hasilnya.
Dengan mengingat hal ini, When QuerySets dievaluasi dapat menjadi bacaan yang layak.
Jika Anda menggunakan get()
, misalnya scorm.objects.get(pk=someid)
, dan objek tidak ada, ObjectDoesNotExist
pengecualian akan dimunculkan:
from django.core.exceptions import ObjectDoesNotExist
try:
sc = scorm.objects.get(pk=someid)
except ObjectDoesNotExist:
print ...
Pembaruan:
itu juga mungkin untuk menggunakan exists()
:
if scorm.objects.filter(Header__id=qp.id).exists():
....
Mengembalikan
True
jika QuerySet berisi hasil apa pun, danFalse
jika tidak. Ini mencoba menjalankan kueri dengan cara yang paling sederhana dan tercepat , tetapi menjalankan kueri yang hampir sama dengan kueri QuerySet normal.
if scorm.objects.filter(Header__id=qp.id).exists()
Pada Django 1.2, Anda dapat menggunakan 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=...)
rute
ini berhasil untuk saya!
jika some_queryset.objects.all (). existing (): print ("tabel ini tidak kosong")