# 19、利用 django-simpleui 模板在管理后台添加自定义的菜单和自定义的页面、设置访问权限



利用 django-simpleui 模板在管理后台添加自定义的菜单和自定义的页面、设置访问权限

* settings.py

```python
SIMPLEUI_CONFIG = {
    'system_keep': True,
    'menu_display': ['Cloudflare', '用户扩展', '权限认证', ],
    'dynamic': True,
    'menus': [{
        # 'app': 'DrfApi',
        'name': 'Cloudflare',
        'icon': 'fa fa-file',
        'models': [
            {
                'name': 'CF账号',
                'icon': 'far fa-surprise',
                'url': 'DrfApi/cloudflare/'
            },
            {
                'name': '内网穿透',
                'url': 'https://www.wezoz.com',
                'icon': 'fab fa-github'
            },
            {
                'name': '自定义页面',         # 新加的 url 页面
                'url': 'testhtml/',
                'icon': 'fab fa-github'
            }
        ]
    },

        {
        'app': 'test_jwt',
        'name': '用户扩展',
        'icon': 'fas fa-user-shield',
        'models': [
                {
                    'name': '用户',
                    'icon': 'fa fa-user',
                    'url': 'test_jwt/userinfo/'
                }
        ]
    },

        {
        'app': 'auth',
        'name': '权限认证',
        'icon': 'fas fa-user-shield',
        'models': [
            {
                'name': '组',
                'icon': 'fa fa-user',
                'url': 'auth/group/'
            }
        ]
    },


    ]
}
```

* views.py

```python
from django.shortcuts import render
from django.contrib.admin.views.decorators import staff_member_required


def testhtml(request):
    '''自定义的页面'''
    return render(request, 'test/test.html')

testhtml = staff_member_required(testhtml)
```

* testhtml

```html
 {% extends 'admin/base_site.html' %} 

 {% block content %} 
     what are you name 
 {% endblock %}
```

* urls.py

```python
from dtheme import views

urlpatterns = [
    # 第一个就是我们自己新增的url路径
    # 这个路由一定要添加在admin.site.urls的前面，因为不然的话，它会先去admin.site.urls里面去匹配，造成混乱或报错。
    re_path(r'^admin/testhtml/', views.testhtml),
    re_path(r'^admin/', admin.site.urls),
    re_path(r'^api/user/', include('duser.urls')),
    re_path(r'^api/post/', include('dpost.urls')),
    re_path(r'^api/theme/', include('dtheme.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
```

![](https://2134947750-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvILwbD2PrkBCkSitM3m4%2Fuploads%2FRW9eMcCT8yR2lFP9OwPd%2Fimage-20210906174454027.png?alt=media\&token=826fc771-0334-4ff9-9920-e14b41124ec4)
