2013-05-29 10 views
15

Farklı modellere dayalı olarak querysetlerde kullanmak istediğim bir Django eylem işlevi var.Django queryset'in model türünü denetlemenin en iyi yolu

Model türünü kontrol etmenin en iyi yolu, queryset'imden oluşur? Ben

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

kullanarak işe I Şu anda benim models.py

tanımlanan bir Kütüphane sınıf için kontrol etmek istediğiniz Say Ama bunu yapmanın daha iyi bir yolu yoktur eminim .

Bir şekilde queryset.model kullanarak bir şey yaptığımı varsayalım. Ben aşağıdaki denedi ama ben bunu istediğini yapmaz:

import myapp.models.Library 

def my function(modeladmin,request queryset) 

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

kullanabilirsiniz ' modeladmin.model 'modelini bulmak için –

+0

Evet ama bu queryset.model'nin bana verdiği değerle aynı. –

cevap

23

Tamam, kullandığım, bkz yerine() isinstance taşımaktadır:

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

Bu kontrol başarısız olduğunda hangi istisna kaldırılır? – RaffAl