django xadmin的使用和改造

django本身自带一个强大的admin后台管理系统,但是管理起来并不是很方便。这里介绍下xadmin,xadmin是基于bootstrap和admin的一个更强大的后台管理系统

github地址https://github.com/sshwsfc/xadmin.git

第一步安装

一pip安装pip install xadmin

二源码安装git clone https://github.com/sshwsfc/xadmin.git

cd xadmin

pip install -r requirements.txt安装所有依赖

建议使用virtualenv建立虚拟环境,因为xadmin的依赖环境可能和本地环境有冲突

第二步使用

在settings中加入

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'users',
    'courses',
    'organization',
    'operation',
    'xadmin',
    'crispy_forms'
]

修改urls

 from django.conf.urls import url
 from django.contrib import admin
 import xadmin
 urlpatterns = [
     url(r'^xadmin/', xadmin.site.urls),
 ]

python manage.py makemigrations创建表文件(其实不需要,本来就有的)

python manage.py migrate应用文件

到这里xadmin就已经可以使用了

第三步改造

新建adminx替换原本的admin将models注册进入xadmin

#_*_ encoding:utf-8 _*_

import xadmin
from xadmin import views

from .models import EmailVerifyRecord, Banner

class BaseSetting(object):
    # 主题修改
    enable_themes = True
    use_bootswatch = True

class GlobalSettings(object):
    #整体配置
    site_title = 'xxx后台系统'
    site_footer = ‘’xxx'
    menu_style = 'accordion'    #菜单收起

class EmailVerifyRecordAdmin(object):
    #后台列表显示列
    list_display = ['code', 'email', 'send_type', 'send_time']
    #后台列表查询条件
    search_fields = ['code', 'email', 'send_type']
    #后天列表通过时间查询
    list_filter = ['code', 'email', 'send_type', 'send_time']


xadmin.site.register(EmailVerifyRecord, EmailVerifyRecordAdmin)
xadmin.site.register(views.BaseAdminView, BaseSetting)
xadmin.site.register(views.CommAdminView, GlobalSettings)

修改apps文件

from django.apps import AppConfig


class UsersConfig(AppConfig):
    name = 'users'
    verbose_name = '用户信息'

修改__init__文件

default_app_config = "users.apps.UsersConfig"

完成改造

参考

http://www.cnblogs.com/lizitest/p/6919015.html

以及慕课网中django学习课程

原文地址:https://www.cnblogs.com/lgh344902118/p/7060186.html