Django Admin 是对model中 对应的数据表进行增删改查的组件,对每个APP下面已注册的model表进行增删改查。而stark组件仿照Admin组件开发。
Admin的常用配置:
Filedstes
使用方法和效果如下图
Action
使用方法和效果图
需要在My_AppConfig(admin.ModeAdmin)中编写自定义函数
需要注意的:(1)该函数在select下拉框中 作为value值
(2)该函数有两个参数,分别是request、queryset
(3)前端的复选框,前端整合成一个字典。字典的键:复选框的name,字典的值:列表类型,存储valu
定义的foo会在前端action的select 下拉框,函数名当作value值
点击go ,根据select下拉框中的value,值,就是刚才定义的函数名发送后端,后端拿到这个值,找到这个函数并执行。
Admin 的使用两个场景:
1)admin 配置url
2)注册model
注意:每个APP下有个admin模块
使用流程
1、当django项目启动时,admin应用首先扫描(加载)每个APP下面的每个admin.py 文件
自执行函数,autodiscover()执行扫描,扫描
2、每个admin文件导入admin模块时,生成site对象、
注意:admin.site.registry(Book),注册时,_registry{}字典保存的键是model 中的类名,值是model的管理类的AdminClass类
3、使用site对象注册model 中的类名
4、生成已注册model类的增删改查url
知识点:
1、同一模块重复调用,文件只加载一次
2、基于模块的单例模式,第一次生成对象时,会生成一个内存空间_instance,当第二次生成时,_instance有值,会把该对象的内存指向上一次对象的内存空间
路由分发
一条url有正则和相对应的函数组成,路由分发则是把对应的函数转变成一个元组。元组包括一个列表,和两个None值
仿照admin开发的过程中,目的是生成model对应的url,需要获取该model所在APP的名字和mode的名字.
使用my_model._meta.model_name 获取
自定义stark组件仿照admin:注意,在stark apps.py 配置文件中的类中,增加一个函数
def ready(self): autodiscover_modules("stark_admin")
该函数的意义:——执行文件下的read方法——扫描startk文件
注意:static 放在项目下面,需配置staticfiles 放在应用下面,无须配置。django扫描每个项目下面的static文件
request 请求:请求的url ,可以使用request.GET获取数据
2、
原文地址:https://www.cnblogs.com/huyangblog/p/8590682.html