欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Django 第九章 Admin后台系统

程序员文章站 2022-06-02 16:14:14
...

Admin后台系统主要对网站的信息进行管理,如文字、图片、影音和其他日常使用的文件的发布、更新、删除等操作,也包括功能信息的统计和管理,如用户信息、订单信息和访客信息等。

1.走进Admin

如果Admin后台系统以英文的形式显示,在项目settings中设置中间件MIDDLEWARE,将后台内容以中文形式显示。 ‘django.middleware.locale.LocaleMiddleware’ 添加的中间件是有先后顺序的。

    'django.middleware.security.SecurityMiddleware',#内置的安全机制,保护用户与网站的通信安全
    'django.contrib.sessions.middleware.SessionMiddleware',#会话Session功能
    'django.middleware.locale.LocaleMiddleware'#国际化和本地化
    'django.middleware.common.CommonMiddleware',#处理请求信息,规范化请求内容
    'django.middleware.csrf.CsrfViewMiddleware',#开启CSRF功能
    'django.contrib.auth.middleware.AuthenticationMiddleware',#开启内置的用户认证系统
    'django.contrib.messages.middleware.MessageMiddleware',#开启内置的信息提示功能
    'django.middleware.clickjacking.XFrameOptionsMiddleware',#防止恶意程序单击劫持

创建超级管理员的账号和密码

(base) E:\MyDjango>python manage.py createsuperuser
Username (leave blank to use 'emma'): admin
Email address:
Password:
Password (again):
This password is too short. It must contain at least 8 characters.
This password is too common.
This password is entirely numeric.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.

Django 第九章 Admin后台系统

from index.models import PersonInfo
@admin.register(PersonInfo)
class PersonInfoAdmin(admin.ModelAdmin):
    list_display = ['id', 'name', 'age']

Django 第九章 Admin后台系统
在ModelAdmin中定义了许多属性和方法,可以用于改变Admin后台页面的样式和布局,使得模型数据以特定的形式展示在Admin后台系统。

2.Admin首页设置

Django 第九章 Admin后台系统Django 第九章 Admin后台系统
INDEX对不会开发的使用者无法理解含义,在项目初始化文件中修改

import os

from django.apps import AppConfig
#修改App在Admin后台显示的名称
#default_app_config的值来自apps.py的类名
default_app_config = 'index.IndexConfig'
#获得当前APP的命名
def get_current_app_name(file):
    return os.path.split(os.path.dirname(__file__))[-1]
#重写 IndexConfig
class IndexConfig(AppConfig):
    name = get_current_app_name(__file__)
    verbose_name = '网站首页'

“人员信息s”是由模型属性Meta的verbose_name设置的,去掉代码如下:

class PersonInfo(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=20)
    age = models.IntegerField()

    def __str__(self):
        return self.name
    class Meta:
        verbose_name = '人员信息'
        verbose_name_plural = '人员信息'

Django 第九章 Admin后台系统
后台系统首页的设置包括:

  • 项目应用的显示名称:在项目应用的__init.__py中设置变量default_app_config,该变量指向自定义的IndexConfig类,由IndexConfig类的verbose_name属性设置项目应用的显示名称。
  • 模型的显示名称:在模型属性Meta中设置verbose_name和verbose_name_plural,两者的区别在于verbose_name是以复数形式表示的,若在模型中同时存在两个属性,则优先显示verbose_name_plural的值。
  • 网页标题:在项目应用admin.py中设置Admin的site_title和site_header属性,如果项目有多个项目应用,只需要在某个项目应用的admin.py中设置一次即可。
相关标签: Django学习 django