目录

Django-通过示例定制admin后台管理

后台管理改为中文

1
2
3
4
5
6
#  将 setting.py  配置选项设置为中文
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'

LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'

/20160305-djangoadmin%E6%89%A9%E5%B1%95/%E6%9B%B4%E6%96%B0%E5%89%8D.png

/20160305-djangoadmin%E6%89%A9%E5%B1%95/%E6%9B%B4%E6%96%B0%E5%90%8E.png

更改后台标题和名称(title/header)

1
2
3
# admin.py 文件添加 修改网页title和站点header
admin.site.site_header = 'XXX平台-管理系统'
admin.site.site_title = 'XXX平台'

/20160305-djangoadmin%E6%89%A9%E5%B1%95/%E5%90%8E%E5%8F%B0%E6%A0%87%E9%A2%98.png

创建Admin 超级管理员账号

1
python manage.py createsuperuser

将数据表添加到站点管理

  1. settings.py文件,INSTALLED_APPS 加入该app.
  2. 定义模型写入models.py
1
2
3
4
from django.db import models
lass Question(models.Model):
    question_text = models.CharField('问题描述',max_length=200)
    pub_date = models.DateTimeField('发布日期')
  1. 在该app目录的admin.py文件下注册
1
2
3
4
5
6
from django.contrib import admin
from .models import Question
class QuestionAdmin(admin.ModelAdmin):
    pass

admin.site.register(Question, QuestionAdmin)

更改APP的名称

写入该app的__init__文件,更改默认配置。

1
2
3
4
5
6
7
from django.apps import AppConfig

default_app_config = 'polls.PollsConfig'
class PollsConfig(AppConfig):
    name = 'polls'
    verbose_name='投票'

/20160305-djangoadmin%E6%89%A9%E5%B1%95/app%E5%90%8D%E7%A7%B0%E6%9B%B4%E6%94%B9%E5%89%8D.png /20160305-djangoadmin%E6%89%A9%E5%B1%95/app%E5%90%8D%E7%A7%B0%E6%9B%B4%E6%94%B9%E5%90%8E.png

更改Model模型名称

1
2
3
4
5
6
7
8
class Question(models.Model):
    # 在该模型定义加入内嵌类定义元数据👇
    class Meta:
        verbose_name = '问题'
        verbose_name_plural = verbose_name

    question_text = models.CharField('问题描述',max_length=200)
    pub_date = models.DateTimeField('发布日期')

/20160305-djangoadmin%E6%89%A9%E5%B1%95/model%E8%A1%A8%E5%90%8D%E7%A7%B0%E6%9B%B4%E6%94%B9%E5%90%8E.png

数据记录对象以字段显示

写入 admin.py 下的 QuestionAdmin类:

1
list_display = ('question_text', 'pub_date')

/20160305-djangoadmin%E6%89%A9%E5%B1%95/%E8%AE%B0%E5%BD%95%E5%88%97%E8%A1%A8%E6%9B%B4%E6%96%B0%E5%89%8D%E4%BB%A5%E5%AF%B9%E8%B1%A1%E6%98%BE%E7%A4%BA.png /20160305-djangoadmin%E6%89%A9%E5%B1%95/%E8%AE%B0%E5%BD%95%E5%88%97%E8%A1%A8%E6%9B%B4%E6%96%B0%E5%90%8E%E4%BB%A5%E5%AD%97%E6%AE%B5%E6%98%BE%E7%A4%BA.png

增加按照时间的过滤器

1
list_filter = ['pub_date']

/20160305-djangoadmin%E6%89%A9%E5%B1%95/%E6%96%B0%E5%A2%9E%E6%97%A5%E6%9C%9F%E8%BF%87%E6%BB%A4%E5%99%A8.png

增加按照问题描述的模糊搜索

1
search_fields = ['question_text']

/20160305-djangoadmin%E6%89%A9%E5%B1%95/%E5%A2%9E%E5%8A%A0%E6%8C%89%E7%85%A7%E9%97%AE%E9%A2%98%E6%8F%8F%E8%BF%B0%E7%9A%84%E6%A8%A1%E7%B3%8A%E6%90%9C%E7%B4%A2.png

增加显示详细日期的筛选模块

1
date_hierarchy = 'pub_date'

/20160305-djangoadmin%E6%89%A9%E5%B1%95/%E5%A2%9E%E5%8A%A0%E6%98%BE%E7%A4%BA%E8%AF%A6%E7%BB%86%E6%97%A5%E6%9C%9F%E7%9A%84%E7%AD%9B%E9%80%89%E6%A8%A1%E5%9D%97.png

图像预览显示