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

  

  

posted @ 2019-10-18 09:47  离人怎挽_wdj  阅读(121)  评论(0编辑  收藏  举报