2012-06-06 35 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