一般来说、站点分为内容发布和公共访问两部分
内容发布的部分由网站管理员负责查看、添加、修改、删除数据,开发这些重复的功能非常的单调乏味,而且还缺乏创造力。
所以,Django根据定义的模型类自动地生成管理模块。
使用django站点管理模块步骤:
(1)管理界面本地化
(2)创建管理员
(3)注册模型类
(4)自定义管理页面。
1、管理界面本地化 :将语言,时间设置为本地的语言时间
修改 setting.py
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
2、创建管理员
python manage.py createsuperuser
按照提示输入用户名、邮箱、密码。
启动服务器 :python manage.py runserver 0.0.0.0:8000,然后在浏览器中访问: 127.0.0.1:8000/admin,即可进入登录页面。
输入创建管理员时的用户名和密码,登录进入后台管理系统,如下图所示:
此时,该页面没有我们需要管理的类,BookInfo和HeroInfo,,在代码中注册即可。
3、注册模型类
在model/admin.py 中进行注册,键入以下代码:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.contrib import admin
from models import *
# Register your models here.
admin.site.register(BookInfo)
admin.site.register(HeroInfo)
注意:每次修改代码后,开发服务器会自动进行重启,无需手动重新启动。
刷新浏览器页面,成功注册BookInfo和HeroInfo,在后台里就可以很轻松的实现管理,极大地提供便利,,管理操作也非常的简单,可在系统里边亲自操作体验。
4、自定义管理页面
下图是我们在增加了一个对象之后的界面,每一个对象都显示的是相同的名字,我们无法直观的看到对象的具体表示神马,所以这就需要我们自定义管理在列表页显示的内容,比如字段、属性等。
实现自定义页面需要在修改admin.py代码为:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.contrib import admin
from models import *
# Register your models here.
class BookInfoAdmin(admin.ModelAdmin):
list_display = ['id','title','pub_time'] #添加需要显示的字段
class HeroInfoAdmin(admin.ModelAdmin):
list_display = ['id','name', 'content', 'gender', 'book']
admin.site.register(BookInfo, BookInfoAdmin)
admin.site.register(HeroInfo, HeroInfoAdmin)
刷新浏览器查看BookInfos:显示除了id,title和putime。
在HeroInfos中对象与bookInfo存在多对一的关系,下图红框的地方只显示了book对象,但没有显示具体的book,为解决这一问题,我们需要在model/models.py 的BookInfo类中添加__str__()方法,将对象作为字符串返回:
class BookInfo(models.Model):
title = models.CharField(max_length=20)
pub_time = models.DateField()
def __str__(self):
return self.title.encode("utf-8")
刷新浏览器:成功显示出了book名。
关于后台管理列表倒序:如果需要进行升序排列,可以点击具体字段,将按照该字段进行排序。
至此,我们使用Django创建superuser,然后借助admin注册相应的模型类,在后台可以轻松实现增删改查管理操作。
python+Django 之使用模型(开始小项目)
python+Django之后台站点管理
python+Django之视图和URL配置
python+Django之使用模板(完成小项目)