2013-05-29 9 views
15

Ich habe eine Django-Action-Funktion, die ich auf Abfrage-Sets basierend auf verschiedenen Modellen verwenden möchte.Django beste Möglichkeit, den Modelltyp eines Querysets zu überprüfen

Was ist der beste Weg, um den Modelltyp zu überprüfen, aus dem mein Queryset besteht? Sagen, dass ich für eine Bibliothek Klasse überprüfen möge, die in meinem models.py

Im Moment definiert ist, ich es

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

mit zu arbeiten, aber ich bin sicher, es gibt einen besseren Weg, dies zu tun .

Ich nehme an, irgendwie mache ich etwas mit queryset.model. ich folgendes versucht, aber es tut nicht, was ich will, es zu:

import myapp.models.Library 

def my function(modeladmin,request queryset) 

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

Sie können mit ' modeladmin.model', um das Modell zu finden –

+0

Ja, aber das ist das selbe wie das, was queryset.model mir gibt. –

Antwort

23

Ok, ich sehe, ich benutze, ist statt isinstance():

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

Welche Ausnahme soll ausgelöst werden, wenn diese Überprüfung fehlschlägt? – RaffAl

Verwandte Themen