Django默认控制面板增加module

作者:matrix 被围观: 1,014 次 发布时间:2022-07-31 分类:Python | 一条评论 »

这是一个创建于 627 天前的主题,其中的信息可能已经有所发展或是发生改变。

Django可以一句话生成后端数据表CURD控制器以及对应界面。默认只包含用户授权AUTHENTICATION AND AUTHORIZATION模块

图片5506-Django默认管理端控制面板增加module

想根据此默认界面做简单修改,但是又不想完全自定义。仅基于此页面最小化开发添加自定义模块和url

最终效果图

图片5510-Django默认控制面板增加module

新增模块bark,且不添加数据表。新模块下添加自定义名称url

新增文件

bark/apps.py
此文件留空

bark/models.py

from django.db import models 

class price_tips_index(models.Model):
    pass
    class Meta:
        verbose_name_plural = 'bark价格告警参数' # 定义管理端页面读取的模型名称

class cron_notice_price_warning(models.Model):
    pass
    class Meta:
        verbose_name_plural = '定时任务:价格告警触发接口'

price_tips_index、cron_notice_price_warning类无实际数据表
Meta子类用于设置模型数据信息
verbose_name_plural属性新模块中直接显示,url为此类名

bark/admin.py

from django.contrib import admin
from django.contrib.auth.models import Group
from .models import price_tips_index,cron_notice_price_warning

class UndefinedBlank(admin.ModelAdmin):
    def has_add_permission(self, request, obj=None):
        return False
    def has_change_permission(self, request, obj=None):
        return False 

admin.site.register(price_tips_index,UndefinedBlank)
admin.site.register(cron_notice_price_warning,UndefinedBlank)

admin.site.site_header = "Dashboard" # 替换控制面板顶部title

has_add_permission、has_change_permission方法重写右侧的Add、Change按钮显示
admin.site.register 执行模块项目注册

配置INSTALLED_APPS

INSTALLED_APPS = [
    ...
    'bark',
]

根据新增模块的bark目录,配置初始化路径

配置路由url

from django.urls import path,re_path
from .bark import bark_params

urlpatterns = [
    ...
    re_path(r'^admin/price_tips_param/?', bark_params.price_tips_param),# 价格报警设置
    re_path(r'^admin/bark/price_tips_index/?', bark_params.price_tips_index),
    ...
]

说明:
引入的bark_params为自定义的控制器文件
price_tips_param,price_tips_index分别为入口函数。若需要登录校验可以使用@login_required装饰器

设置路由,拦截请求到指定控制器入口。
否则会经过数据表models查询,报错 表不存在django (1146, 'Unknown error 1146')

参考:
https://docs.djangoproject.com/zh-hans/3.2/ref/contrib/admin/

https://docs.djangoproject.com/zh-hans/3.2/ref/models/options/

https://docs.djangoproject.com/zh-hans/3.2/topics/auth/default/#the-login-required-decorator

https://www.learnfk.com/question/django/2156114.html

其他文章:
本文固定链接:https://www.hhtjim.com/django-increase-the-default-control-panel-module.html
matrix
本文章由 matrix 于2022年07月31日发布在Python分类下,目前没有通告,你可以至底部留下评论。
转载请注明:Django默认控制面板增加module-HHTjim'S 部落格
关键字:

有1条评论 »

  1. 谷歌优化 谷歌优化 2022-10-10 9:53:14 +0800#1

    感谢分享

添加新评论 »

 🙈 😱 😂 😛 😭 😳 😀 😆 👿 😉 😯 😮 😕 😎 😐 😥 😡 😈 💡

插入图片

NOTICE: You should type some Chinese word (like “你好”) in your comment to pass the spam-check, thanks for your patience!