45-课堂的老师的txt笔记
day27
s17day27 - 自己写点【】 - 开发规划 - 计划: - 立项 - 业务 - 数据库设计 - 登录 - cookies - session - Form验证 - 列表 - 数据ORM操作 内容回顾: 1. 权限(rbac) - 基于用户权限管理 - 基于角色权限管理 2. 4个类6张表 用户 角色 权限 - 含正则的URL - code,控制是否出现添加、删除、编辑按钮 - is_menu, 权限菜单组 3. session 4. 中间件 5. inclusion_tag 今日内容概要: 1. 权限【修Bug】 - 删除和编辑时,左侧菜单无法默认展开 - 控制页面是否显示【添加】【编辑】【删除】 2. 自定义CURD插件 - django admin,解决基本CURD 参考博客: http://www.cnblogs.com/wupeiqi/articles/7444717.html admin.site.register(models.UserInfo) URL: /admin/app01/userinfo/ /admin/app01/userinfo/add/ /admin/app01/userinfo/1/change/ /admin/app01/userinfo/1/delete/ admin.site.register(models.UserType) URL: /admin/app01/usertype/ /admin/app01/usertype/add/ /admin/app01/usertype/1/change/ /admin/app01/usertype/1/delete/ 结论: 先注册类 循环注册的所有的类,每个类创建4个url /admin/app01/userinfo/ obj1.changelist_view /admin/app01/userinfo/add/ obj1.add_view /admin/app01/userinfo/(\d+)/delete/ obj1.delete_view /admin/app01/userinfo/(\d+)/change/ obj1.change_view self.model=models.UserInfo /admin/app01/usertype/ obj2.changelist_view /admin/app01/usertype/add/ obj2.add_view /admin/app01/usertype/(\d+)/delete/ obj2.delete_view /admin/app01/usertype/(\d+)/change/ obj2.change_view self.model=models.UserType 自定义功能: from django.contrib import admin from django.contrib.admin import ModelAdmin from . import models from django.shortcuts import HttpResponse class UserInfoModelAdmin(ModelAdmin): def changelist_view(self, request, *args,**kwargs): return HttpResponse('用户列表') admin.site.register(models.UserInfo,UserInfoModelAdmin) 29个功能 重要原理: - admin原理(自定义) - admin使用 - 自定义 Django Admin:根据配置文件的修改,完成CURD定制任务 自定义: 根据配置文件的修改,完成CURD定制任务 - 知识点: 1. 启动文件执行顺序 制作启动文件 - 创建app - 找到app.py def ready(self): from django.utils.module_loading import autodiscover_modules autodiscover_modules('arya') - settings.py INSTALLED_APPS = [ ... 'arya.apps.AryaConfig', # 不要写'arya'这种方式注册 .... ] 自动去所有的app中找 arya.py 执行 2. 单例模式(基于Python文件导入特性) 3. 你真的了解include吗? 顺序:先register,然后在urls================= 目标: - 类:4个URL - 制作启动文件,每个app的arya.py site._registry = { app01.UserInfo: UserInfoConfig对象1(UserInfo) =>【self.changelist_view(self,),self.add_view,self.change_view,self.delete_view】 app01.UserType: AryaConfig对象2(UserType) =>【self.changelist_view(self,),self.add_view,self.change_view,self.delete_view】 app02.Server: AryaConfig对象3(Server) =>【self.changelist_view(self,),self.add_view,self.change_view,self.delete_view】 } 以后,让UserInfo的所有操作交给AryaConfig对象来处理 - urls.py url(r'^arya/', (v1.site.urls,None,None)), for model_class,ary_config_obj in self._registry.items(): UserInfo ary_config_obj.url - 列表 ary_config_obj.changelist_view - 添加 ary_config_obj.add_view - 删除 ary_config_obj.delete_view - 修改 ary_config_obj.change_view 3. 权限 + 自定admin + crm业务 本周任务: 1. 自己手动去写CURD,初级开发者【*】 2. 权限管理【**】【注释】 3. arya插件【注释】 - 启动文件 - 生成URL - list_display显示页面(继承) PS: yield,面向对象封装,__iter__ 4. 权限和arya插件整合在一起 5. Django Admin
做有积累的事~~

浙公网安备 33010602011771号