CRM项目知识预备

用户自定义配置与默认配置

如果用户在setting中配置了自己的选项了,那么global_setting中相同的配置项旧被弃用了
init.py

import importlib
from lib.conf import global_settings
import os

class Settings(object):
    def __init__(self):
        for name in dir(global_settings):
            # print(dir(global_settings))
            if name.isupper():
                k = name
                v = getattr(global_settings,name)
                setattr(self,k,v)  # 将项目默认的配置文件中所有的配置以键值对的形式存入到了settings对象中

        # 从全局的大字典中获取暴露给用户的settings文件路径
        module_path = os.environ.get('xxx')
        module = importlib.import_module(module_path)
        for name in dir(module):
            if name.isupper():
                k = name
                v = getattr(module,name)
                setattr(self,k,v)  # 将暴露给用户的配置文件中所有的配置以键值对的形式存入到了settings对象中


settings = Settings()

start.py

import os
import sys


BASE_DIR = os.path.dirname(__file__)
sys.path.append(BASE_DIR)
# 项目启动 设置全局大字典{'xxx':'conf.settings'}
os.environ.setdefault('xxx','conf.settings')


from lib.conf import settings
print(settings.NAME)

admin五大配置参数

如下图

from django.contrib import admin
from app01 import models
# Register your models here.
# print('from app01 admin')
class BookConfig(admin.ModelAdmin):
    list_display = ['title','price','publish_date','publish']
    list_display_links = ['title','price']
    search_fields = ['title','price']
    list_filter = ['publish','authors']

    def patch_init(self,request,queryset):
        queryset.update(price=666)

    patch_init.short_description = '价格批量修改'
    actions = [patch_init]

admin.site.register(models.Book,BookConfig)
admin.site.register(models.Publish)
admin.site.register(models.Author)
admin.site.register(models.AuthorDetail)

print(admin.site._registry)

猜你喜欢

转载自www.cnblogs.com/huanghongzheng/p/11278831.html