2016-07-12 92 views
0

我想獲取我在models.py文件中定義的類的名稱。我能得到的最接近的是恢復所有車型中的應用:獲取我在django模型中定義的類的名稱

modelsList = django.apps.apps.get_models (include_auto_created=False)` 

這給:

<class 'django.contrib.admin.models.LogEntry'> 
<class 'django.contrib.auth.models.Permission'> 
<class 'django.contrib.auth.models.Group'> 
<class 'django.contrib.auth.models.User'> 
<class 'django.contrib.contenttypes.models.ContentType'> 
<class 'django.contrib.sessions.models.Session'> 
<class 'app.models.Project'> 
<class 'app.models.User'> 
<class 'app.models.File'> 

但我想只有字符串「項目」,「用戶」,「文件」。無論如何,我可以得到嗎?

+0

迭代這些類,訪問'__name__'屬性。 – jonrsharpe

+0

明白了!非常感謝! –

回答

0

基於a answer from here

from django.apps import apps 

def get_models(app_name): 
    myapp = apps.get_app_config(app_name) 
    return myapp.models.values() 
+0

非常感謝你!完美的作品! –

+0

@AnkitaNand:太好了!請接受答案。 – Tiago

0

您可以爲Model._meta.object_name模型Model獲得型號名稱。所以你可以這樣做:

import django.apps 
models = django.apps.apps.get_models(include_auto_created=False) 
model_names = [m._meta.object_name for m in models]