用过django的朋友都知道,django自带的后台管理系统是一套智能的管理系统。
今天给大家介绍下一套基于admin, 比admin更强大的系统。 xadmin
源码安装:
github地址:https://github.com/sshwsfc/xadmin/tree/django2 (django2分支)
clone 或者 下载到本地以后,把xadmin文件夹直接拷贝到项目目录中,就像这样(我是新建了一个extra_apps专门存放第三方app)
pip安装一些依赖包
pip install django-crispy-forms
pip install django-formtools
pip install httplib2
pip install future
pip install six
pip install django-import-export
(若安装django-import-export库时遇到问题,请看文章尾部)
配置setting.py注册apps
INSTALLED_APPS = [
......
'xadmin',
'crispy_forms',
]
urls.py中添加路由
import xadmin
urlpatterns = [
url(r'^xadmin/', xadmin.site.urls),
]
控制台注册超级用户
createsuperuser
同时makemigrations和migrate同步xadmin的一些表
启动服务,访问后台 127.0.0.1:8000/xadmin
如果发现页面是英文的,可以在settings.py中配置语言和时区
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False #设置为False则使用本地时间,否则会使用国际时间
接下来就是把app注册到xadmin中
在app目录下新建一个adminx.py, xadmin会自动搜寻该文件来注册model
以我自己的一个校园卡管理系统的代码为例
import xadmin
from .models import Card, Student
class CardAdmin:
list_display = ['card_id', 'balance', 'state', 'create_time']
search_fields = ['card_id']
list_filter = ['card_id', 'state', 'create_time']
class StudentAdmin:
list_display = ['student_id', 'card_id', 'name', 'sex', 'college', 'grade', 'dormitory']
search_fields = ['student_id', 'card_id', 'name', 'sex', 'college', 'grade', 'dormitory']
list_filter = ['student_id', 'card_id', 'name', 'sex', 'college', 'grade', 'dormitory']
xadmin.site.register(Card, CardAdmin)
xadmin.site.register(Student, StudentAdmin)
*报错解决
在pip安装过程中,出现如下报错
UnicodeDecodeError: 'utf8' codec can't decode byte 0xce in position 72
解决方案:控制台输入
chcp 65001
转换成 utf-8代码页
然后重新pip一下就解决了~