Django获取应用下的所有models

Django获取应用下的所有models

from django.apps import apps

apps.get_models()  # 获取所有的models,包含Django自带的

apps.get_app_config('blog')  # 获取blog的配置
# <BlogConfig: blog>

apps.get_app_config('blog').models
# OrderedDict([('tag', <class 'app_blog.blog.models.Tag'>), ('category', <class 'app_blog.blog.models.Category'>)])


apps.get_app_config('blog').get_models()  # 获取所有的models
# <generator object AppConfig.get_models at 0x00000263BC3A2C78>

list(apps.get_app_config('blog').get_models())  # 遍历所有的models
# [<class 'app_blog.blog.models.Tag'>, <class 'app_blog.blog.models.Category'>, ...]

apps.get_app_config('blog').get_model('Article')._meta.verbose_name  # 获取models的名称
# '文章'

admin下实现遍历注册model

all_models = apps.get_app_config('blog').get_models()
for model in all_models:
    try:
        admin.site.register(model)
    except:
        pass

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券