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]
相關文章
相關標籤/搜索