获取我在django模型中定义的类的名称

时间:2016-07-12 20:16:02

标签: python django django-models

我试图获取我在models.py文件中定义的类的名称。我能得到的最接近的是恢复应用程序中的所有模型:

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'>

但我只想要字符串'Project','User','File'。无论如何我能得到那个吗?

2 个答案:

答案 0 :(得分:1)

您可以使用Model获取模型Model._meta.object_name的型号名称。所以你可以这样做:

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

答案 1 :(得分: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()