Django学习笔记(3)--admin管理站点配置

admin站点管理

创建管理员账号:

python manage.py createsuperuser

代码片段

settings.py

INSTALLED_APPS = [
    'django.contrib.admin',	#默认存在,若没有需添加
    ........
 ]
 ..........
 ...........
LANGUAGE_CODE = 'zh-Hans'   #更改语言

TIME_ZONE = 'Asia/Shanghai' #更改时区

admin.py

from .models import Question,Choice,Grades,Students

# Register your models here.

#自定义管理类
class QuestionAdmin(admin.ModelAdmin):
    #admin管理页面列表页属性
    list_display = ['question_text','pub_date']  #显示字段
    list_filter = ['question_text']              #过滤字段
    search_fields = ['question_text']            #搜索字段
    list_per_page = 2   #分页

    #添加、修改页属性。
    #!!!注意:fields和fieldsets不能同时使用
    #fields = ['pub_date','question_text']       #改变属性先后顺序
    fieldsets = [                                #给属性分组
        ("base",{'fields':['question_text']}),
        ("date",{'fields':['pub_date']})
    ]
    
#注册对应的model    
admin.site.register(Question,QuestionAdmin)

管理界面

在管理界面添加或修改的数据会直接在数据库中体现

关联对象

  • 在一个对象中插入多个对象(一对多)

    代码示例
    在admin.py中添加如下代码

    class StudentsInfo(admin.TabularInline):#StackedInline竖向展示  TabularInline横向展示
        model = Students    #models中对应的类
        extra = 2   #一个年级一次增加或修改2个学生
    
    class GradesAdmin(admin.ModelAdmin):
        inlines = [StudentsInfo]
        .....
        .....
        ]
    
  • 效果展示
    Django学习笔记(3)--admin管理站点配置_第1张图片
    admin自定义管理页面
    admin.py

    class StudentsAdmin(admin.ModelAdmin):
        #定义一个函数gender,改变boolean值的显示方式
        def gender(self):		
            if self.sgender:
                return "男"
            else:
                return "女"
    
        def grade(self):
            return self.grades
        def name(self):
            return self.sname
        def age(self):
            return self.sage
        def contend(self):
            return self.scontend
            
        #定义一个函数delete,改变boolean值的显示方式
        def delete(self):
            if self.isDelete:
                return "是"
            else:
                return "否"
        
        #设置页面列的名称
        grade.short_description = "班级"
        name.short_description = "姓名"
        age.short_description = "年龄"
        gender.short_description = "性别"
        contend.short_description = "简介"
        delete.short_description = "是否删除"
     
        list_display = [grade,name,age,gender,contend,delete] #写入定义的函数
        .......
    
    	#执行动作位置显示
        actions_on_top = False
        actions_on_bottom = True
    

页面展示
Django学习笔记(3)--admin管理站点配置_第2张图片
Django学习笔记(3)--admin管理站点配置_第3张图片
使用装饰器注册页面
admin.py

#删除原有的注册器,添加新的装饰器装饰对应类
@admin.register(Students)
class StudentsAdmin(admin.ModelAdmin):
	......
	......
# admin.site.register(Students,StudentsAdmin)

你可能感兴趣的:(django)