2012-06-06 65 views
0

如何以編程方式從傳遞給函數的任何模型對象中獲取app_label,以便可以將其序列化爲XML?從Django模型中檢索app_label

在此示例中,model_unicode是模型的名稱,object是預過濾的模型對象。我確實需要爲以後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) 

OKM的測試輸出

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

你不要讓」不需要'get_model',只需使用如果'object'是一個'QuerySet',或者'object .__ class__',如果'object'是模型的一個實例''object.model'。 – okm

回答

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

More information你可以從_meta

+0

沒有用戶實際上...操作正在試圖找到一個 – okm

+0

正如@okm指出,你可以從'obj .__ class__'獲得'Model'類 – San4ez

+0

,這樣就可以讓最終代碼做到這一點,obj .__ class __._ meta.app_label? – Jharwood