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

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

E:\django\djDemo>python manage.py createsuperuser
Username (leave blank to use 'stephencurry'): lmh
Email address: [email protected]
Password:
Password (again):
Superuser created successfully.

​ 如上所示即创建完成,这时键入python manage.py runserver启动项目,进入项目的地址的 admin 目录下,就可以进入 admin 后台管理界面(地址为127.0.0.1:8000/admin)
Django——admin功能、注册模型类、模型管理类_第1张图片
使用刚才注册的用户名密码登录后,即可进入 admin 后台管理主页
Django——admin功能、注册模型类、模型管理类_第2张图片
使用 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 界面中看到模型类:

Django——admin功能、注册模型类、模型管理类_第3张图片
随后我们便可以在这个界面中对其进行添加和删除数据的操作,直接鼠标点击就可以完成,

自定义管理页面(模型管理类)
​ 我们也可以通过自定义模型管理类,来自己定义 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功能、注册模型类、模型管理类_第4张图片
无法显示后台可在终端上输入

python manage.py migrate

然后进行输入后台账号 密码 邮箱等信息

你可能感兴趣的:(Django——admin功能、注册模型类、模型管理类)