2012-06-06 3 views
0

Как я могу программно получить app_label из любого объекта модели, переданного функции, чтобы я мог сериализовать его в XML?Извлечение app_label из модели Django

В этом примере model_unicode - это имя модели, а объектом является объект с предварительно отфильтрованной моделью. Мне нужно get_model() для позже

def model_to_xml(object, model_unicode): 
    model_list = object 
    model_name = "" 
    model_app_label = ??? 
    model = get_model(model_app_label,model_unicode) 

Test Output ОКМ в

try: 
    print object.model 
except: 
    print "not Queryset" 
try: 
    print object.__class__ 
except: 
    print "not Instance of Model" 

Выход:

<class 'jmsdirectory.contacts.models.Supplies'> 
<class 'django.db.models.query.QuerySet'> 
+2

Вы надеваете» t нужно 'get_model', просто используйте 'object.model', если' object' является 'QuerySet' или' object .__ class__', если 'object' является экземпляром модели. – okm

ответ

2
>>> User._meta.app_label 
'auth' 

More information вы можете получить от _meta

+0

На самом деле нет 'User' ... Оператор пытается найти один – okm

+0

Как заметил @okm, вы можете получить класс' Model' из 'obj .__ class__' – San4ez

+0

, чтобы сделать окончательный код для этого, obj .__ класс __._ meta.app_label? – Jharwood

Смежные вопросы