django中批量注册model进入admin

原先在使用的时候,每个app下面的admin.py,每一个model都要注册一下,就像这样

from django.contrib import admin
from .models import *
# Register your models here.
admin.site.register(member,.....)#这里写入你的所有model

  

非常麻烦,每次有新增加的model又要重新注册

改进了一下,可以一下将model全部注册,新增也不怕

#settings.py
# Application definition
CUSTOM_APPS=[
    'base',
    'usercenter',
    'ussd',
]
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]+CUSTOM_APPS

  

在其中任意一个app下面的admin.py写入:

from django.contrib import admin

from django.contrib.admin.sites import AlreadyRegistered #获取app:api下所有的model得到一个生成器

from django.apps import apps

from mogo.settings import CUSTOM_APPS

for each  in CUSTOM_APPS:
    app_models = apps.get_app_config(each).get_models()
    for model in app_models:
        admin.site.register(model)

  

大功告成!

posted @ 2020-10-21 18:06  程序员改变世界  阅读(347)  评论(0)    收藏  举报