【Django】如何使用Admin站点和Admin管理类

1.在settings.py中设置语言和时区

LANGUAGE_CODE = 'zh-hans' # 设置语言
TIME_ZONE = 'Asia/Shanghai' # 设置时间

2.创建超级管理员

首先cd到项目目录(在终端和pycharm的terminal都可以),执行命令:python manage.py createsuperuser

根据提示,依次输入用户名,邮箱,密码(不能过于简单)

现在就可以访问,http://127.0.0.1:8000/admin/或者localhost:8000/admin/进行登陆,

但是没有内容。

3.注册模型类

后台管理默认没有我们创建的应用中定义的模型类,需要在自己应用中的admin.py文件中注册,才可以在后台管理中看到,并进行增删改查操作。

# 默认
from django.contrib import admin
# 导入
from booktest.models import BookInfo,HeroInfo

# 注册需要管理的模型类
admin.site.register(BookInfo)
admin.site.register(HeroInfo)

进入admin站点,刷新就可以看到了。

4.定义与使用Admin管理类

Django提供的Admin站点的展示效果可以通过自定义ModelAdmin类来进行控制,定义管理类需要继承自admin.ModelAdmin类。

以下代码是,自定义对商品保存、删除以及对商品详情操作的Admin管理类,其中用到了celery异步任务,有点乱,但不妨碍对Admin管理类的理解。

from django.contrib import admin
from goods import models
from celery_tasks.static_html.tasks import generate_static_list_search_html, generate_static_sku_detail_html
# Register your models here.

class GoodsAdmin(admin.ModelAdmin):
    # 商品spu表管理器
    list_display = ['id', 'name']
    # 创建保存商品的方法
    def save_model(self, request, obj, form, change):
        # obj是当前要更新的模型类对象
        obj.save()
        # 每当保存时,就调用生成静态页面的方法,保证静态页面是最新的数据内容
        # 在这里打断点可以从前端调试看到,原始数据在initial中,更新数据在change中
        generate_static_list_search_html.delay()

    # 删除方法,同样需要调用生成静态页面的方法,保证信息最新
    def delete_model(self, request, obj):
        # 物理删除(看需求)
        obj.delete()
        generate_static_list_search_html.delay()

# 商品详情页
class SKUAdmin(admin.ModelAdmin):

    def save_model(self, request, obj, form, change):
        obj.save()
        generate_static_sku_detail_html.delay(obj.id)

# 如果是生成测试数据,可以借助shell
admin.site.register(models.Goods,GoodsAdmin)
admin.site.register(models.SKU,SKUAdmin)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值