美文网首页
搭建博客笔记:py_kouga (五) 使用 Django-su

搭建博客笔记:py_kouga (五) 使用 Django-su

作者: 智勇双全的小六 | 来源:发表于2018-10-20 15:43 被阅读0次

    参考教程

    1. 使用suit-v2美化Django Admin(兼容Django新版本!)

    前言

    django 后台自带的 UI 实在太丑了,要美化,调研了如下解决方案:

    • xadmin。国人开发的,不支持 python3,差评!Python3 下安装各种报错。
    • django suit。好看。支持 django2.0,文档小学生都能看懂 。选择!
    • grappelli。不好看。

    Django Suit

    官方文档: 链接
    Git: 链接

    install

    Django Suit 为了适配 Django 有许多不同的版本,导致它们的安装方式也有差异。所以安装之前一定要分清版本。

    使用 pip list 查看Django 版本。

    pip list|grep Django
    >>> Django 1.10.6
    

    所以我采用的是 Django Suit v2-dev, 这个分支的官方文档
    下载,pip install https://github.com/darklow/django-suit/tarball/v2
    修改 my_project_app/apps.py

    from suit.apps import DjangoSuitConfig
    # layout这个参数决定你的网页是初始样式是垂直样式还是水平样式,可选参数为‘horizontal’或‘vertical’
    class SuitConfig(DjangoSuitConfig):
        layout = 'horizontal'
    

    添加应用,注意一定要把应用放到django.contrib.admin 前面。

    INSTALLED_APPS = (
        ...
        'my_project_app.apps.SuitConfig',
        'django.contrib.admin',
    )
    

    配置

    可以把 代码 贴到 your_application/apps.py 中的对应位置,体验一下 Django suit 的配置。

    class SuitConfig(DjangoSuitConfig):
        # 布局,垂直'vertical'还是水平'horizontal'
        layout = 'vertical'
        # 配置菜单栏
        menu = (
    # ParentItem 是一级标题栏。第一个参数是标题名,children 是list形式,里面放置了二级菜单。还可以传不定参数 icon,这是图标。
    # ChildItem 是二级菜单栏,第一个参数是标题名。不定参数 url=(这个任务具体的函数),icon。
            ParentItem('Content', children=[
                ChildItem(model='demo.country'),
                ChildItem(model='demo.continent'),
                ChildItem(model='demo.showcase'),
                ChildItem('Custom view', url='/admin/custom/'),
            ], icon='fa fa-leaf'),
            ParentItem('Integrations', children=[
                ChildItem(model='demo.city'),
            ]),
            ParentItem('用户管理', children=[
                ChildItem(model='auth.user'),
                ChildItem('User groups', 'auth.group'),
            ], icon='fa fa-users'),
            ParentItem('账号安全', children=[
                ChildItem('Password change', url='admin:password_change'),
                ChildItem('Open Google', url='http://google.com', target_blank=True),
    
            ], align_right=True, icon='fa fa-cog'),
        )
    
        def ready(self):
            super(SuitConfig, self).ready()
    
            # DO NOT COPY FOLLOWING LINE
            # It is only to prevent updating last_login in DB for demo app
            self.prevent_user_last_login()
    
        def prevent_user_last_login(self):
            """
            Disconnect last login signal
            """
            from django.contrib.auth import user_logged_in
            from django.contrib.auth.models import update_last_login
            user_logged_in.disconnect(update_last_login)
    
    

    相关文章

      网友评论

          本文标题:搭建博客笔记:py_kouga (五) 使用 Django-su

          本文链接:https://www.haomeiwen.com/subject/mihmzftx.html