如何将Django中的管理端网站变得好看又与众不同

要使Django的管理员网站变得好看又与众不同,可以通过以下几个步骤实现:

  1. 使用自定义的CSS:

    在Django的任何admin应用下的static/admin/目录中创建一个css文件,然后在该目录下的admin文件夹中的base_site.py文件中引入这个CSS文件。




class MyAdminSite(admin.AdminSite):
    site_header = 'My Custom Admin Site' # 自定义头部
    site_title = 'My Admin' # 自定义标题
 
    def get_urls(self):
        from django.urls import path
        from django.contrib.admin.views.login import login_view
 
        urlpatterns = super().get_urls()
        urlpatterns += [
            path('login/', self.admin_view(login_view), name='login'),
        ]
        return urlpatterns
 
    def admin_view(self, view, cacheable=False):
        """
        Decorator to set properties for admin views.
        """
        # We'd need to change this to work with more complex view functions.
        def inner(request, *args, **kwargs):
            if not self.has_permission(request):
                if not self.login_form_class:
                    raise Http404('No login form')
                return login_view(request, self.login_template or 'admin/login.html', {
                    'title': self.login_title or _('Log in'),
                    'app_name': 'admin',
                    'username': request.GET.get('username'),
                    'site_header': self.site_header,
                    'site_title': self.site_title,
                })
            return view(request, *args, **kwargs)
        if cacheable:
            inner = cache_page(CACHE_MIDDLEWARE_SECONDS)(inner)
        # We add 'admin:%s_%s' % (app_label, opts.model_name) in the view's
        # 'adminsite_permission_flag_cache' attribute for checking permissions.
        inner.adminsite_permission_flag_cache = '%s_%s' % (
            self.name,
            view.func.admin_site_permission_flag,
        )
        return update_wrapper(inner, view)
 
admin.site = MyAdminSite()
  1. 使用自定义的JavaScript:

    同样,在static/admin/目录下创建一个js文件,并在base_site.py中引入。

  2. 使用自定义的Admin模板:

    templates/admin/目录下创建自定义的模板,然后在base_site.py中通过admin.AdminSite.add_template_options方法添加自定义模板。

  3. 使用第三方库:

    可以使用如django-jetdjango-cms这样的第三方库来提供更丰富的管理员界面。

  4. 使用主题:

    可以使用如Bootstrap这样的CSS框架来创建一个现代化的管理员界面。

  5. 使用Admin界面扩展:

    可以通过扩展内置的模型管理器类(如ModelAdmin)来增加额外的功

评论已关闭

推荐阅读

Vue中使用mind-map实现在线思维导图
2024年08月04日
VUE
Web前端最全Vue实现免密登录跳转的方式_vue怎么样不登录返回首页,最强技术实现
2024年08月04日
VUE
vue3 项目搭建教程(基于create-vue,vite,Vite + Vue)
2024年08月04日
VUE
Vue-颜色选择器实现方案——>Vue-Color( 实战*1+ Demo*7)
2024年08月04日
VUE
Vue项目卡顿慢加载?这些优化技巧告诉你!_vue数据多渲染卡顿
2024年08月04日
VUE
vue中的keep-alive详解与应用场景
2024年08月04日
VUE
Vue、React实现excel导出功能(三种实现方式保姆级讲解)
2024年08月04日
vue-office/docx插件实现docx文件预览
2024年08月04日
VUE
java调用js文件的两种方法(支持V8引擎)
2024年08月04日
JavaScript:解决计算精度问题/mathjs/bignumber.js/big.js/decimal.js
2024年08月04日
两周从爬虫小白变大神 _yjs_js_security_passport
2024年08月04日
JS笔记(对象、函数、数组)
2024年08月04日
Markdown.js:强大的纯JavaScript Markdown解析器
2024年08月04日
Vue项目:js模拟点击a标签下载文件并重命名,URL文件地址下载方法、请求接口下载文件方法总结。
2024年08月04日
vue 父组件怎么获取子组件里面的data数据
2024年08月04日
VUE
个人开发实现AI套壳网站快速搭建(Vue+elementUI+SpringBoot)
2024年08月04日
el-table 表格封装并改造实现单元格可编辑
2024年08月04日
none
nodejs环境下创建vue项目、SSH密钥登陆!!!
2024年08月04日
vue+quill+element-ui实现视频、图片上传及缩放保姆级教程,轻松使用富文本
2024年08月04日
【three.js】22. Imported Models导入模型
2024年08月04日