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):

完结

原文地址:https://www.cnblogs.com/Rain2017/p/10269665.html