Django的Admin站點管理


一、概述

  內容發布:負責添加、修改、刪除內容

  公告訪問

二、配置Admin應用

  在settings.py文件中的INSTALLED_APPS中添加'django.contrib.admin',默認是添加好的

三、創建管理員用戶

  在項目的根目錄下,執行命令:python manage.py createsuperuser

依次輸入用戶名、郵箱、密碼(密碼不能太復雜)

四、漢化

  修改setting.py

LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai' 

五、管理數據表

准備工作:在admin.py文件中添加

1 from .models import Grades,Students # . 表示同目錄下的文件
2  # 注冊模型類
3 admin.site.register(Grades)
4 admin.site.register(Students)

自定義管理界面:

  1、代碼

# 管理班級界面,需要注冊一個相應的管理類
class GradesAdmin(admin.ModelAdmin): #需要繼承
    #列表頁屬性
    list_display = ['pk','gname','gdate','ggirlnum','gboynum','isDelete']
    list_filter = ['gname']
    search_fields = ['gname']
    list_per_page = 5 # 每五條一頁
    # 添加、修改頁屬性
   # fields = ['ggirlnum', 'gboynum', 'gname', 'gdate', 'isDelete']
   fieldsets = [
     ("num", {"fields":['ggirlnum', 'gboynum']}),
     ("base", {"fields":['gname', 'gdate', 'isDelete']}),
  ]
   # 寫好的管理類需要加到注冊里
   admin.site.register(Grades, GradesAdmin)

   2、屬性說明

    列表屬性:

      list_display:顯示字段

      list_filter:過濾字段,頁面右上方顯示出過濾器按鈕

      search_fields:搜索字段,頁面左上方顯示出搜索框

      list_per_page:分頁

    添加、修改頁屬性:

      fields:屬性的先后順序

      fieldsets:給屬性分組

      注意:fields與fieldsets不能同時使用

  3、關聯對象:

# 准備工作,記得注冊
class StudentsAdmin(admin.ModelAdmin):
    list_display = ['pk', 'sname', 'sage', 'sgender', 'scontend', 'sgrade', 'isDelete']
    list_per_page = 2

  需求:在創建一個班級時可以直接添加兩個學生

# 在admin.py添加一個類
class StudentsInfo(admin.Tabularlnline): # 也可以繼承admin.StackedInline,兩張的區別在於頁面顯示效果不同
    model = Students
    extra = 2
# 注意:要在GradesAdmin類添加一行;為了節省空間,剩余的代碼就不往上填了
class GradesAdmin(admin.ModelAdmin):
    inlines = [StudentsInfo]

   4、布爾值顯示替換成想要的參數:

# 增加函數gender()
class StudentsAdmin(admin.ModelAdmin):
    def gender(self):
        if self.sgender:
            return ''
        else:
            return ''
    # 將頁面列的字段替換成想要顯示的字段
    gender.short_description = "性別"
    # 將函數gender作為參數傳入,代替sgender
    list_display = ['pk', 'sname', 'sage', gender, 'scontend', 'sgrade', 'isDelete']

 使用裝飾器完成注冊:

# 用裝飾器來代替之前的注冊函數
@admin.register(Students)
class StudentsAdmin(admin.ModelAdmin):

完結


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM