zoukankan      html  css  js  c++  java
  • CRM项目之stark组件(2)

    那么从今天开始呢,我们就要开始设计属于我们自己的admin组件,起个名字就叫stark吧(当然你愿意叫什么都可以)。

    stark组件之四步走

    仿照admin组件实现流程,stark组件要实现四件事情:

    step1 

    djagno启动后要能够执行每一个app下的名为stark.py的文件(需要单独创建)

    ① 在settings配置文件中,确保

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        "crm",
        "stark.apps.StarkConfig",
    ]

    ② 在stark.apps.StarkConfig类中引入ready方法

    from django.apps import AppConfig
    from django.utils.module_loading import autodiscover_modules
    class StarkConfig(AppConfig): name = 'stark' def ready(self): autodiscover_modules("stark")

    Django在启动后首先会读取settings中变量INSTALL_APP中的每一个app,读取的类如果有ready方法,便会执行。

    step2 

    基于一个单例对象实现model类注册

    class AdminSite(object):
        """
        stark组件的全局类
        """
    
        def __init__(self):
            self._registry = {}
    
        def register(self, model, admin_class=None):
            # 设置配置类
            if not admin_class:
                admin_class = ModelStark
    
            self._registry[model] = admin_class(model)
    
    site = AdminSite()

    step3

    为注册的所有的model设计增删改查四个URL,以Book类为例,动态生成如下4条URL:

    http://127.0.0.1:8000/admin/app01/book/
    http://127.0.0.1:8000/admin/app01/book/add/
    http://127.0.0.1:8000/admin/app01/book/2/change/
    http://127.0.0.1:8000/admin/app01/book/2/delete/
    

    step4

    设计增删改查对应的视图函数(这是整个组件最核心的部分) 

     

  • 相关阅读:
    linux上搭建私人Git服务器的详细教程
    25个经典的Spring面试问答
    面试题汇总
    idea 中添加查看字节码工具
    HTTP 及 http 请求解析过程
    常见的攻击类型及防范
    Postman 压力测试
    Postman 接口测试配置 Pre-request Script
    jq图片展示插件highslide.js
    cesium transform 倾斜摄影模型矩阵指定经纬度
  • 原文地址:https://www.cnblogs.com/pyedu/p/10375531.html
Copyright © 2011-2022 走看看