后台管理
使用Django的管理模块,需要按照如下步骤操作:
- 管理界面本地化
- 创建管理员
- 注册模型类
- 自定义管理页面
1、本地化
语言和时区的本地化,修改settings.py文件
# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hans' # 使用中文
# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai' # 中国时间/上海
2、创建管理员
命令:
python manage.py createsuperuser
按提示输入用户名、邮箱、密码,邮箱我是乱写的。
输入命令python manage.py runserver启动服务,在浏览器输入http://127.0.0.1:8000/admin/,然后输入刚才注册的用户名和密码,如下图:
登录后界面如下图:
3、注册模型类
登录后台管理后,默认没有我们创建的应用中定义的模型类,需要在自己应用中的admin.py文件中注册,才可以在后台管理
中看到,并进行增删改查操作。
from django.contrib import admin
from booktest.models import BookInfo, HeroInfo
# 后台管理相关文件
# Register your models here.
# 注册模型类
admin.site.register(BookInfo)
admin.site.register(HeroInfo)
在浏览器刷新,界面如下图:
点击类名称"BookInfo"可以进入列表页,因为之前插入两条数据,所以默认有两列
在列表页中点击右上角"增加"可以进入增加页,Django会根据模型类的不同,生成不同的表单控件,按提示填写表单内容后点击"
保存",完成数据创建,创建成功后返回列表页
在列表页中点击某行的第一列可以进入修改页,删除或者修改信息并保存。
在列表页勾选想要删除的复选框,可以删除多项
4、自定义管理页面
自定义模型管理类。模型管理类就是告诉django在生成的管理页面上显示哪些内容。
在列表页只显示出了BookInfo object,对象的其它属性并没有列出来,查看非常不方便。 Django提供了自定义管理页面的功能,比如列表页要显示哪些值。修改admin.py文件,
from django.contrib import admin
from booktest.models import BookInfo, HeroInfo
# 后台管理相关文件
# Register your models here.
# 定义模型管理类
class BookInfoAdmin(admin.ModelAdmin):
"""图书模型管理类"""
list_display = ['id', 'b_title', 'b_pubdate']
class HeroInfoAdmin(admin.ModelAdmin):
"""英雄模型管理类"""
list_display = ['id', 'h_name', 'h_gender', 'h_comment', 'h_book_id']
# 注册模型类
admin.site.register(BookInfo, BookInfoAdmin)
admin.site.register(HeroInfo, HeroInfoAdmin)
刷新BookInfo和HeroInfo的列表页,所有属性都显示出来