zoukankan      html  css  js  c++  java
  • 源码安装xadmin及使用

    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进行相应修改

  • 相关阅读:
    Razor 常用又容易忘记语法
    游览器 reflow
    正则表达式
    migration to end point routing
    js 翻译 c# 注意事项
    Angular 学习笔记 work with excel (导出 excel)
    html4,5 basic
    IIS 服务器配置
    meta 的用途
    正则表达 常用
  • 原文地址:https://www.cnblogs.com/wongbingming/p/7117159.html
Copyright © 2011-2022 走看看