admin 的使用及参数配置

admin的使用
        创建超级用户
        在admin.py注册模型表
            admin.site.register(models.author)
        django默认注册两张自带的表
        
    
    admin 生成自定义模型url的规律
        http://127.0.0.1:8000/admin/app01/book/  书籍的查看
        http://127.0.0.1:8000/admin/app01/book/1/change/  书籍的编辑
        http://127.0.0.1:8000/admin/app01/book/1/delete/  书籍的删除
        http://127.0.0.1:8000/admin/app01/book/add/  书籍的添加
        
        推测:
        http://127.0.0.1:8000/admin/app01/publish/  出版社的查看
        http://127.0.0.1:8000/admin/app01/publish/1/change/  出版社的编辑
        http://127.0.0.1:8000/admin/app01/publish/1/delete/  出版社的删除
        http://127.0.0.1:8000/admin/app01/publish/add/  出版社的添加
        
        真理:
        http://127.0.0.1:8000/admin/app01/publish/
        http://127.0.0.1:8000/admin/app01/publish/1/change/
        http://127.0.0.1:8000/admin/app01/publish/1/delete/
        http://127.0.0.1:8000/admin/app01/publish/add/
    
    规律:admin会给注册了的模型表起码生成增删改查四条url!!!
    
    
    admin参数配置
            # Book表的配置类  admin.py中
        class BookConfig(admin.ModelAdmin):
            list_display = ['title','price','publish','publishDate']
            list_display_links = ['title','price','publish']
            search_fields = ['title','price']
            list_filter = ['publish','authors']

            # actions功能
            def patch_init(self,request,queryset):
                queryset.update(price=666)

            patch_init.short_description = '价格批量初始化'
            actions = [patch_init]

        
        list_display:
            指定数据展示的字段
            注意多对多字段不能放在list_display列表里进行展示
        list_display_links:
            指定跳转字段(跳转到当前字段所在数据的编辑页)
        search_fields
            search_fields = ['title','price']
            输入框输入1,则会搜索title里包含1的或者price包含1的数据
                1.在页面上渲染出搜索框
                2.支持条件与条件之间的""查询
        list_filter
            1.它不是用来筛选普通字段的,它是用来帮你筛选外键字段的!!!
            2.支持组合查询,只要是点亮的选项都是""的关系  name='xx'&price='xxx'
        actions
            批量处理数据
                # 先定义一个批量处理函数
                def patch_init(self,request,queryset):
                    queryset.update(price=666)     #--->通过对queryset对象的操作数据
                # 给这个函数命名  不写就是首字母大写的函数名
                patch_init.short_description = '价格批量初始化'  #--->万物接对象,这一步是给函数加一个属性
                # 配置到配置类中
                actions = [patch_init]

 

posted on 2019-12-12 17:43  小胖子方法  阅读(1368)  评论(0编辑  收藏  举报

导航