【Django】使用xadmin构建后台管理系统

news/2024/11/28 6:39:15/

文章目录

  • 1 配置xadmin
  • 2 注入数据表
  • 3 配置后台管理系统样式

1 配置xadmin

  1. 在github搜索xadmin并下载源码

    由于xadmin报错实在是太多了,我前前后后改了三十多个报错,查阅了数百篇博客以及文献。为了以后不去重复处理报错,我fork了原来的xadmin项目,新建了自己的xadmin版本:MyXadmin,因此我建议你使用该仓库的xadmin版本。

  2. 在setting的INSTALLED_APPS中添加crispy_forms、xadmin、reversion、crispy_bootstrap3和django.conf,并配置语言和时区。

    这里之所以要添加crispy_bootstrap3和django.conf配置,是为了避免之后的报错。

    INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','apps.users.apps.UsersConfig','apps.courses.apps.CoursesConfig','apps.operations.apps.OperationsConfig','apps.organizations.apps.OrganizationsConfig','crispy_forms','xadmin.apps.XAdminConfig','reversion','crispy_bootstrap3','django.conf',
    ]
    CRISPY_TEMPLATE_PACK = 'bootstrap3'LANGUAGE_CODE = 'zh-hans'  # 配置显示为中文TIME_ZONE = 'Asia/Shanghai'  # 配置时区
    USE_TZ = False
    
  3. 安装xadmin的依赖

    pip install -i https://pypi.doubanio.com/simple/ -r requirements.txt
    
  4. 生成数据表

    makemigrationsmigrate
    
  5. 配置urls.py

    使用xadmin替代admin构建后台管理系统。

    from django.contrib import admin
    from xadmin.plugins import xversion
    from django.urls import path
    import xadmin
    xversion.register_models()
    xadmin.autodiscover()
    urlpatterns = [# path('admin/', admin.site.urls),path('xadmin/', xadmin.site.urls),
    ]
    

2 注入数据表

  1. 在app目录下新建adminx.py文件,并编辑如下:

    import xadmin
    from apps.courses.models import Cityclass CourseAdmin(object):"""为每个需要注入的数据表创建Admin函数"""list_display = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students']  # 定义列表页显示的字段search_fields = ['name', 'desc', 'detail', 'degree', 'students']  # 定义搜索的字段list_filter = ['name', 'teacher__name', 'desc', 'detail', 'degree', 'learn_times', 'students']  # 定义过滤器字段('外键__外键属性':这种格式可以直接定位到外键属性)list_editable = ["degree", "desc"]  # 定义允许在列表中直接编辑的字段xadmin.site.register(Course, CourseAdmin)  # 注册数据表
    
  2. 修改在xadmin网页中显示的该app名称(编辑app目录下的apps.py)

    from django.apps import AppConfigclass CoursesConfig(AppConfig):name = 'apps.courses'verbose_name = "课程管理"  # 别称
    

3 配置后台管理系统样式

class GlobalSettings(object):site_title = "CW后台管理系统"  # 定义后台系统主题名称site_footer = "CW网站页脚"  # 定义后台系统网站页脚menu_style = "accordion"  # 左侧导航栏收起class BaseSettings(object):enable_themes = True  # 允许更换主题皮肤配置use_bootswatch = Truexadmin.site.register(xadmin.views.CommAdminView, GlobalSettings)
xadmin.site.register(xadmin.views.BaseAdminView, BaseSettings)

http://www.ppmy.cn/news/382954.html

相关文章

家庭教育

有一对不读书的父母,是孩子的悲哀。 我们身边经常有这样一类家长:打麻将成瘾,家里牌桌林立,众牌友污言秽语,每天烟雾缭绕。 一边叫着“发财”“白皮”,一边催促放学的孩子:“快好好做作业去&am…

人到中年,如何规划好家庭消费

如果你马上就要四十岁了,人到中年,我发现自己的中年财务危机很严峻、、 跟年轻人比较,收入不见增长,可是花钱的地方越来越多:房贷,车贷,物业费,车位租金,养车费&#xff…

家庭理财管理系统/家庭财务管理系统

摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,家庭理财管理系统当然也不能排除在外。家庭理财管理系统是以实际运用为开发背景,运用软件工程开发方法&…

关注家庭教育-父母对子女的期望

关注家庭教育 - 孩子有自己的追求 文章目录 关注家庭教育 - 孩子有自己的追求简要正文期望家庭教育公众号 简要 人对自己的子女都免不了有一些期望。我们对子女实际上只能存品德方面的期望,因为品德它是放之四海而皆准的。你可以希望你的小孩以后长大待人很热忱&am…

家庭教育(一)

家庭教育(一) ✨为什么家长或教育者需要学习"家庭教育" 家庭教育包含 学习能力学习习惯亲子沟通目标激励情商培养性格天赋婚姻关系青春成长 大部分孩子会遇到的问题 学习不积极,没有兴趣,家长逼着学、哄着学写作业拖拉,行为散漫上…

如何才能做好家庭教育?家庭教育的五个主要方面

家庭教育的重要性家庭教育自古以来就受到人们的关注,但近年来在中国被作为一门学科来研究。这是时代发展、人才需求、人民整体素质提高必须涉及的问题。在这里,我们和家长一起探讨家庭教育的重要性,让家庭、社会、教育部门共同承担起教育下一…

好的家庭教育

好的家庭教育 内核:一生负气成今日,四海无人对夕阳引导:暑假,亲子冲突高发期身教:自由和规则并举,打造与孩子的相处模式人性:如何自然的激发孩子游戏:内在进步的欲望 > 外部注意力…

佩戴舒适的蓝牙耳机评测,值得入手的蓝牙耳机推荐

蓝牙耳机越来越少受年轻人的欢迎,蓝牙耳机品牌也非常多,很多朋友在选择时,不知道选哪款好,下面是小编整理的蓝牙耳机品牌排行榜前十名,大家可以参考参考。 一、南卡OE蓝牙耳机 参考价格:469 舒适性最高的…