Django站点管理——学习总结

Django中默认集成了后台数据管理页面,通过简单的配置就可以实现模型后台的Web控制台。————登录(127.0.0.1:8000:admin)——(示例,因个人设置而异)

管理界面通常是给系统管理员使用的,用来完成数据的输入,删除,查询等工作。

一般而言项目的settings.py文件中都集成该应用,如果没有集成,自己在settings中的INSTALLED_APPS添加 'django.contrib.admin'应用:

INSTALLED_APPS = [
    'django.contrib.admin',
    .....]

首先在Pycharm的终端窗口输入:python manager.py createsuperuser 创建一个系统管理员,根据提示逐步往下完成用户名、密码、邮箱等操作。

为便于在后台管理页面的操作,还可以在settings.py文件中把语言和时间进行更改

 设置为中文    LANGUAGE_CODE = 'zh-hans'

设置时间,时区     TIME_ZONE='Asia/Shanghai'

在创建的App下找到admin.py文件,添加自己的数据模型 进行注册:     admin.site.register(xxx)     ——‘xxx’为在models.py中创建的类;

以上基本上就是Django站点的基本设置,除以上基本设置之外还有几点需要注意:在Django后台进行数据管理时,页面显示给我们的数据是某条数据的对象而不是易分辨的数据名称:

例如:对项目中定义的一个Person类进行数据操作时:以及修改后:

Django站点管理——学习总结_第1张图片           Django站点管理——学习总结_第2张图片

事实上,__str__是被print函数调用的,一般都是return一个什么东西。这个东西应该是以字符串的形式表现的。如果不是要用str()函数转换。当你打印一个类的时候,那么print首先调用的就是类里面的定义的__str__:

Django站点管理——学习总结_第3张图片

 而如果不满足默认的站点样式还可以自己对Django站点进行个性化定制:

如果你感觉默认的站点样式不能满足应用需求,则开发者可以通过继承Django定义的管理员数据模型,模板,站点类来开发出个性化的管理员站点。     

注册的时候添加自己的管理类 创建管理类    
 class StudentAdmin(admin.ModelAdmin): 
        # 规则
 注册管理类    
 admin.site.register(Students,StudentAdmin)

例:在admin.py文件中的自定义:

#创建管理类
class PersonAdmin(admin.ModelAdmin):
#规则
    list_display = ['p_name','p_sex']
#注册
admin.site.register(Person,PersonAdmin)

效果:

Django站点管理——学习总结_第4张图片

显示规则   

 list_display     显示字段     

list_filter    过滤字段     

search_fields    搜索字段   

list_per_page    分页,每页显示多少条数据     

ordering    排序规则     分组显示         

fieldsets = ( ('班级',{fields:('sgrade')}),('姓名',{fields:('sname')}),)

例:

比如性别,在list_display的时候可以传递一个函数

def gender(self):
        if self.sgender:
            return '男'
        else:
            return '女'

    list_display = ('sname', 'sage', gender)
# 设置显示的标题
    gender.short_description = '性别'

例:

创建班级的Admin
	class GradeAdmin(admin.ModelAdmin):
		inlines = [StudentInfo]

创建学生信息
	class StudentInfo(admin.TabularInline):
		model = Student
		extra = 2

admin.site.register(Grade,GradeAdmin)

Django后台管理——个性化设置

还有一种覆盖系统模板的方式,在     django/contrib/admin/templates/admin中, 将需要重新定制的文件复制出来, 在自己的工程中创建相对应的子目录, 在settings中注入模板路径,子模板继承自复制的模板 添加自己的代码。

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Django站点管理——学习总结)