2013-05-29 4 views
15

Mam funkcję działania Django, które chciałbym użyć w zapytaniach opartych na różnych modelach.Django najlepszym sposobem sprawdzenia typu modelu zestawu zapytań

Jaki jest najlepszy sposób sprawdzenia typu modelu, z którego składa się zestaw zapytań? Że chcę, aby sprawdzić, klasa biblioteka, która jest zdefiniowana w moim models.py

W tej chwili mogę zmusić go do pracy przy użyciu

for object in queryset : 
    if object.__class__.__name__ == "Library" 

Ale jestem pewien, że istnieje lepszy sposób to zrobić .

Zakładam, że jakoś robię coś za pomocą queryset.model. Próbowałem następujących, ale to nie to, co chcę go do:

import myapp.models.Library 

def my function(modeladmin,request queryset) 

    if isinstance(queryset.model , Library) : 
     # do something specific here 
+0

Można użyć ' modeladmin.model', aby znaleźć model –

+0

Tak, ale to jest to samo, co daje mi queryset.model. –

Odpowiedz

23

Ok, widzę, używam to zamiast isinstance():

if queryset.model is Library : 
    # do something. 
+0

Jaki wyjątek należy podnieść, gdy kontrola nie powiedzie się? – RaffAl