django 后台管理 -- 生成 admin 后台系统

本贴最后更新于 1554 天前,其中的信息可能已经时过境迁

django 后台管理简介

  • django 框架自动生成的后台管理界面
  • 从 ORM 模型中读取元数据信息,简单配置即可
  • 其功能强大,可用于对数据库中数据的管理

将模型添加到后台管理

配置 admin 框架

下面配置 django 框架默认已经生成,check 下即可

  1. INSTALLED_APPS 配置应用及依赖
django.contrib.admin	# 主要是这行

django.contrib.auth
django.contrib.contenttypes
django.contrib.messages
django.contrib.sessions

auth:用户认证相关

messages:给用户的提示信息

contenttypes:做复合类型时需要用到

  1. 模板选项配置 TEMPLATES 中的 OPTIONS
  • 添加上下文处理器:context_processors
django.contrib.auth.context_processors.auth
django.contrib.messages.context_processors.messages
  1. 添加中间件 MIDDLEWARE
django.contrib.auth.middleware.AuthenticationMiddleware
django.contrib.messages.middleware.MessageMiddleware
  1. 配置 url

同级目录下的 urls.py 文档

from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
]
  1. 浏览器访问后台
python manage.py runserver 0.0.0.0:8000

http://HostIp:Port/admin

HostIp:项目主机的 IP 地址

Port:项目启动的端口

image.png

注:这里的用户名和密码是使用命令 python manage.py createsuperuser 创建的

  • 需要先生成数据库文件
python manage.py makemigrations
python manage.py migrate
  • 创建超级用户
python manage.py createsuper	# 按照提示输入对应信息即可

image.png

配置 admin 后台展示中文

在项目的目录下找到 settings.py

LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'

将上面两处修改完成即可

ORM 模型配置

  1. 在模块中新建 admin.py 文件
  2. 封装模型自定义的管理后台功能和选项
    • 每个模型创建一个 ModelAdmin 的子类

ModelAdmin 配置选项- fields/exclude ----需要编辑/不需要编辑的字段列表

  • form ----自定义表单
  • list_display ----在列表中显示的字段
  • ordering ----指定排序规则
  1. INSTALLED_APPS 配置应用
    • 需要管理的 ORM 模型自动搜索添加至后台管理
'testadmin',	# 自己注册的APP模块,即使用 python manage.py createapp testadmin 创建的APP模块
from django.contrib import admin
from testadmin.models import Info

# Register your models here.

@admin.register(Info)	# 注册到后台模块方法
class InfoAdmin(admin.ModelAdmin):
    """ 信息 """
    list_display = ['name', 'age', 'addr', 'create_time', 'update_time']
    list_filter = ('name', 'age',)
    search_fields = ('name',)

需要和 models.py 文件中模型对应

注册到后台模块有两种:

# 方法一
@admin.register(Info)
# 方法二
admin.site.register(Info, InfoAdmin) # 两个选择一种书写即可
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    545 引用 • 672 回帖
  • Django
    47 引用 • 72 回帖 • 4 关注
1 操作
zhhui 在 2020-09-20 18:05:47 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...