2013-05-29 21 views
15

Ho una funzione di azione Django che vorrei usare su querysets basati su modelli diversi.Django, il modo migliore per verificare il tipo di modello di un queryset

Qual è il modo migliore per verificare il tipo di modello di cui è composto il queryset? Dire che voglio verificare la presenza di una classe di libreria che si definisce nel mio models.py

Al momento posso farlo funzionare utilizzando

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

Ma sono sicuro che ci sia un modo migliore di fare questo .

Suppongo che in qualche modo io faccia qualcosa usando queryset.model. Ho provato quanto segue, ma non fare quello che voglio a:

import myapp.models.Library 

def my function(modeladmin,request queryset) 

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

È possibile utilizzare ' modeladmin.model' per trovare il modello –

+0

Sì ma è lo stesso che mi dà queryset.model. –

risposta

23

Ok, vedo, io uso è invece di isinstance():

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

Quale eccezione da sollevare quando questo controllo fallisce? – RaffAl

Problemi correlati