xadmin是django的第三方后台
我们也可以使用pip来安装,但是推荐使用源码安装.
因为有些新功能以及发布在GitHub上,但是还未发布到pypi上,我们就可以提取使用这些功能。
一、安装
1. 到GitHub下载源码:下载页面
下载后,解压,把xadmin文件夹拷问到extra_apps目录下
并Mark as 为 Sources Root
2. 安装依赖包
pip install django-crispy-forms
3. 在settings.py中配置
# 加入这一行
sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))
# 在INSTALLED_APPS 加入
crispy_forms,
xadmin,
4. 配置url
urlpatterns = [
url(r'^xadmin/', xadmin.site.urls), # 注意结尾不能使用$
]
5. 然后同步下数据库
makemigrations migrate
6. 运行django
# 试着运行django项目,如果报错说没有future和six这两个模块,则
pip install future
pip install six # 如果没报错,就在浏览器中输入127.0.0.1:8000/xadmin
二、注册model
在app下新建adminx.py,注意不是xadmin.py
from .models import UserMessage class UserMessageAdmin(object):
list_display = ['user', 'message', 'has_read', 'add_time']
search_fields = ['user', 'message', 'has_read']
list_filter = ['user', 'message', 'has_read', 'add_time'] xadmin.site.register(UserMessage, UserMessageAdmin) # 分别定义的是,1. 显示内容;2. 搜索字段;3. 筛选字段 # 筛选字段如果有外键,则应使用双下划线指定筛选哪个字段
进入后台,刷新页面。会发现,多出了我们刚刚注册的表。
我们尝试新增用户消息。
如果出现:"Table 'mxonline.xadmin_log' doesn't exist"
就重新makemigrations和migrate
三、全局样式修改
1. 主题修改
放在前面的adminx.py
from xadmin import views class BaseSetting(object):
enable_themes = True #xadmin默认为FALSE
use_bootswatch = True #xadmin默认为FALSE xadmin.site.register(views.BaseAdminView, BaseSetting)
正常修改如上就可以修改主题
但是可能源码有Bug,并不能选择第三方样式
我们还需要修改下源码,修复这个bug: xadmin下设置“use_bootswatch = True”无效的原因
然后就可以愉快的修改样式了。
2. 页面信息
包括(左上角标题,页脚,还有左边导航栏改为可合并)
class GlobalSettings(object):
site_title = u"我的博客 - 后台"
site_footer = u"我的博客"
menu_style = "accordion" xadmin.site.register(views.CommAdminView, GlobalSettings)
3. 定义后台app名
在后台,app名为我们定义的对应的模型类名(英文)
我们可以将它自定位为中文
# 每个app根目录下 apps.py
class ArticleConfig(AppConfig):
name = 'article'
verbose_name = u"文章信息" # 主要增加这一行 # 每个app根目录下 __init__.py
default_app_config = 'article.apps.ArticleConfig'
# 不同app进行相应修改