Django——admin功能、注册模型类、模型管理类

Django 初始化后台管理

​ 当一个 Django 项目第一次使用 admin 后台管理功能时,需要通过两步实现,第一步是本地化操作,第二步创建管理员

本地化

​ 实现语言和时区本地化,修改 Django 项目的 settings.py 文件,找到如下代码进行修改:

# Internationalization
# https://docs.djangoproject.com/en/3.0/topics/i18n/

# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hans'

# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'

​ 注释掉的是原代码,'zh-hans'代表中国,Asia/Shanghai代表亚洲上海,修改这两项后,在随后的 admin 界面就可以实现中文了

创建管理员

​ 第二步是在注册一个该 Django 项目的管理员账号,在项目文件夹下使用命令行运行python manage.py createsuperuser,根据其步骤提示,即可完成创建,过程如下:

E:\django\djDemo>python manage.py createsuperuser
Username (leave blank to use 'stephencurry'): lmh
Email address: 2606223743@qq.com
Password:
Password (again):
Superuser created successfully.

​ 如上所示即创建完成,这时键入python manage.py runserver启动项目,进入项目的地址的 admin 目录下,就可以进入 admin 后台管理界面(地址为127.0.0.1:8000/admin

在这里插入图片描述

​ 使用刚才注册的用户名密码登录后,即可进入 admin 后台管理主页(我这个新项目没本地化所以是英文,嘿嘿嘿)

在这里插入图片描述

使用 admin 管理 model

​ 通过 Django 的 admin 后台管理功能,我们可以对自己的 model 模型进行管理,但是在这之前要先将模型类在 admin 中进行注册

注册模型类

​ model 模型是属于 app 的,所以我们要在 app 下的 admin.py 中对我们在 models.py 中创建的模型进行注册,这里 models.py 已经创建好了,代码如下:

from django.db import models

class BookInfo(models.Model):
    btitle = models.CharField(max_length=255)
    bpub_date = models.DateField()

class User(models.Model):
    uname = models.CharField(max_length=30)
    upassword = models.CharField(max_length=20)
    ugender = models.BooleanField(default=True)
    ubirth = models.DateField()
    ubook = models.ForeignKey('BookInfo', on_delete=models.CASCADE)

​ models.py 中定义了两个 model,现在我们要在 admin 中对他们进行注册

​ 注册模型使用 admin.site.register(model)方法进行注册:

from django.contrib import admin
from .models import BookInfo, User

# Register your models here.
admin.site.register(BookInfo)
admin.site.register(User)

​ Django 有热加载功能,我们修改完代码不需要重新启动项目,只需要等它自己更新完刷新界面就好了,刷新后,就会在 admin 界面中看到模型类:

在这里插入图片描述

​ 随后我们便可以在这个界面中对其进行添加和删除数据的操作,直接鼠标点击就可以完成,就不介绍了!

自定义管理页面(模型管理类)

​ 我们也可以通过自定义模型管理类,来自己定义 admin 页面中 model 的显示内容

​ 方法就是在 admin.py 中创建模型管理类:

class BookInfoAdmin(admin.ModelAdmin):
    
    list_display = ['id', 'btitle', 'bpub_date']

class UserAdmin(admin.ModelAdmin):
    list_display = ['uname', 'ubook']

​ 模型管理类必须继承admin.ModelAdmin,在模型管理类中定义名为list_display的 list,将我们想要 admin 页面进行显示的字段写入这个 list 即可

​ 等待项目更新后刷新页面,即可看到我们想让 admin 页面显示的字段
在这里插入图片描述

### Django Admin 功能介绍 Django 自带了一个强大的后台管理系统——Django Admin,它能够自动生成一套基于数据库模型的操作界面。这套系统不仅简化了数据操作流程,还提供了丰富的定制化选项。 #### 后台管理系统的优点 - **自动化生成**:一旦定义好应用中的 `models` 文件,只需简单几步就能让这些模型具备增删改查的功能。 - **安全性高**:内置权限控制机制,可以针对不同用户设置查看、编辑等具体权限[^1]。 #### 安装与初始化 为了启用 Django管理员站点,在创建新项目时默认已经包含了必要的配置项;如果是在已有项目中添加,则需确认 `INSTALLED_APPS` 列表里有 `'django.contrib.admin'` 这一项,并执行迁移命令使更改生效: ```bash python manage.py migrate ``` 接着要创建超级账号以便登录访问: ```bash python manage.py createsuperuser ``` 输入邮箱地址以及两次密码后即完成账户建立过程[^5]。 #### 注册模型Admin Site 为了让特定的数据表能够在后台展示出来,需要将其对应的 Model AdminSite 实例注册。通常做法是在应用程序下的 `admin.py` 中编写如下代码片段来实现这一点: ```python from django.contrib import admin from .models import MyModel admin.site.register(MyModel) ``` 这段脚本会把名为 `MyModel` 的加入到可管理对象列表之中,从而允许通过 Web 界面对其进行维护工作。 #### 扩展与美化 除了基本功能外,还可以借助第三方库进一步增强体验感。比如使用 `Django Admin Menu` 来优化顶部导航栏布局,或是采用 `Django Grappelli` 更换整体视觉风格[^2]。对于复杂表单场景来说,集成 `Crispy Forms` 能够显著改善前端呈现质量[^3]。 另外还有专门用于处理JSON字段的 `django-admin-json-editor` 插件可供选用[^4],而富文本编辑器则推荐尝试 `CKEditor` 组件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值