xadmin 安装

环境(一定要一样)

  • Python 3.6.2
  • Django 2.0

安装

  1. pip install django==2.0, 指定特定的版本
  2. pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2, 从官方的 github 上下载 django2 分支的包, 也可通将该包下载下来再使用 pip 安装, 但是不推荐使用 pip 安装, 建议将 xadmin 放到 libs 下
  3. 目录结构

  1. .
  2. ├── __pycache__
  3.    └── manage.cpython-36.pyc
  4. ├── apps
  5.    ├── __pycache__
  6.    ├── food
  7.       ├── __init__.py
  8.       ├── __pycache__
  9.          ├── __init__.cpython-36.pyc
  10.          ├── admin.cpython-36.pyc
  11.          ├── adminx.cpython-36.pyc
  12.          ├── apps.cpython-36.pyc
  13.          └── models.cpython-36.pyc
  14.       ├── admin.py
  15.       ├── adminx.py
  16.       ├── apps.py
  17.       ├── migrations
  18.          ├── 0001_initial.py
  19.          ├── __init__.py
  20.          └── __pycache__
  21.          ├── 0001_initial.cpython-36.pyc
  22.          └── __init__.cpython-36.pyc
  23.       ├── models.py
  24.       ├── tests.py
  25.       └── views.py
  26.    └── user
  27.    ├── __init__.py
  28.    ├── __pycache__
  29.       ├── __init__.cpython-36.pyc
  30.       ├── admin.cpython-36.pyc
  31.       ├── adminx.cpython-36.pyc
  32.       ├── apps.cpython-36.pyc
  33.       └── models.cpython-36.pyc
  34.    ├── admin.py
  35.    ├── adminx.py
  36.    ├── apps.py
  37.    ├── migrations
  38.       ├── 0001_initial.py
  39.       ├── 0002_auto_20190621_1320.py
  40.       ├── __init__.py
  41.       └── __pycache__
  42.       ├── 0001_initial.cpython-36.pyc
  43.       ├── 0002_auto_20190621_1320.cpython-36.pyc
  44.       └── __init__.cpython-36.pyc
  45.    ├── models.py
  46.    ├── tests.py
  47.    └── views.py
  48. ├── libs
  49. ├── manage.py
  50. ├── media
  51. ├── static
  52. ├── templates
  53. ├── utils
  54.    └── __init__.py
  55. └── xadmintest
  56. ├── __init__.py
  57. ├── __pycache__
  58.    ├── __init__.cpython-36.pyc
  59.    ├── settings.cpython-36.pyc
  60.    ├── urls.cpython-36.pyc
  61.    └── wsgi.cpython-36.pyc
  62. ├── settings.py
  63. ├── urls.py
  64. └── wsgi.py

配置

  1. 所有的 app 都在 apps 目录中, libs 存放第三方拷贝过来的库, 所以需要在 settings.py 中添加如下, 在 INSTALL_APPS 时可以直接写 app 名(推荐这样写, 不这样写可能会有错误)

  1. sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
  2. sys.path.insert(0, os.path.join(BASE_DIR, 'libs'))
  1. 在 settings.py 中的 INSTALL_APPS 添加 xadmin, reversion, crispy_forms

  2. 将 settings.py 中的语言设置成使其支持中文


    1. LANGUAGE_CODE = 'zh-hans'
    2. TIME_ZONE = 'Asia/Shanghai'
    3. USE_I18N = True
    4. USE_L10N = True
    5. USE_TZ = False # 设置为 False 则使用本地时间,否则会使用国际时间
  3. 如果使用 django 自带的用户模块, 还要在 settings.py 中添加 AUTH_USER_MODEL = 'user.UserProfile' 来说重载系统的 User, 其中 user 是 app 名, UserProfile 是该 app 下 models.py 文件中定义的继承了 django.contrib.auth.model.AbstractUser 的类的类名

  4. 将 url.py 中的 url 改为 path('xadmin/', xadmin.site.urls)

  5. 为每一个 model 配置一个 admin, 不再使用 admin.py 而是使用 adminx.py, 在 adminx.py 中使用, 和 admin.py 用法差不多, 我们只需要提供 list_display, search_fields, list_filter


  1. class UserAdmin(object):
  2. list_display = ['name', 'birthday', 'gender']
  3. search_fields = ['name', 'birthday', 'gender']
  4. list_filter = ['name', 'birthday', 'gender']
  5. # xadmin.site.register(UserProfile, UserAdmin), model 不能为 User, 因为内部已经使用了
  6. # 注意, 在扩展 Django 自带的 User 模块时, 需要设置 null=True, blank=True, 否则在之后的 ./manage.py createsuperuser 中会失败
  1. xadmin 还有一些全局配置, 一般就在继承了 AbstractUser 的 models 中定义

  1. class BaseSetting(object):
  2. enable_themes = True
  3. use_bootswatch = True
  4. class GlobalSettings(object):
  5. site_title = '我的管理后台'
  6. site_footer = '我的后台'
  7. xadmin.site.register(views.BaseAdminView, BaseSetting)
  8. xadmin.site.register(views.CommAdminView, GlobalSettings)
  1. 配置后台 app 显示中文, 在每一个 app 下的 __init__.py 中添加

  1. default_app_config = 'user.apps.UserConfig' # 这里的 user 为 app 名, UserConfig 为 apps.py 中的类的类名, 要在 UserConfig 中填写 name 和 verbose_name 两个属性, 其中 verbose_name 为中文
  1. 迁移数据库

  1. ./manage.py makemigrations && ./manage.py migrate
  1. 创建管理员用户

  1. ./manage.py createsuperuser
  1. 如果要在模型中使用富文本编辑器, 需要拷贝 DjangoUeditor(是百度的 Django 项目) 到 libs 中, 在 xadmin 中的 plugins 中添加 ueditor.py 的插件, 内容如下, 这是从一个人的博客derek中得到的, 在 model 中, 如果想要使用富文本域, 需要导入 UEditor 中的 UEditorField, 使用也在下面

  1. # libs/xadmin/plugins/ueditor.py
  2. #!/usr/bin/env python
  3. # -*- coding: utf-8 -*-
  4. import xadmin
  5. from xadmin.views import BaseAdminPlugin, CreateAdminView, ModelFormAdminView, UpdateAdminView
  6. from DjangoUeditor.models import UEditorField
  7. from DjangoUeditor.widgets import UEditorWidget
  8. from django.conf import settings
  9. class XadminUEditorWidget(UEditorWidget):
  10. def __init__(self, **kwargs):
  11. self.ueditor_options = kwargs
  12. self.Media.js = None
  13. super(XadminUEditorWidget,self).__init__(kwargs)
  14. class UeditorPlugin(BaseAdminPlugin):
  15. def get_field_style(self, attrs, db_field, style, **kwargs):
  16. if style == 'ueditor':
  17. if isinstance(db_field, UEditorField):
  18. widget = db_field.formfield().widget
  19. param = {}
  20. param.update(widget.ueditor_settings)
  21. param.update(widget.attrs)
  22. return {'widget':XadminUEditorWidget(**param)}
  23. return attrs
  24. def block_extrahead(self, context, nodes):
  25. print(settings.STATIC_URL)
  26. js = '<script type="text/javascript" src="%s"></script>' % (settings.STATIC_URL + "ueditor/ueditor.config.js")
  27. js += '<script type="text/javascript" src="%s"></script>' % (settings.STATIC_URL + "ueditor/ueditor.all.min.js")
  28. nodes.append(js)
  29. xadmin.site.register_plugin(UeditorPlugin, UpdateAdminView)
  30. xadmin.site.register_plugin(UeditorPlugin, CreateAdminView)
  31. # apps/yourmodel/models.py
  32. class Food(models.Model):
  33. name = models.CharField(max_length=30, verbose_name='食品名称')
  34. price = models.FloatField(default=0, verbose_name='价格')
  35. brief = models.TextField(max_length=500, verbose_name='简介')
  36. description = UEditorField(verbose_name='内容', imagePath='food/images/', filePath='food/files/', default='')
  37. supplier = models.ForeignKey(Supplier, on_delete=models.CASCADE)
  38. class Meta:
  39. verbose_name = '食品'
  40. verbose_name_plural = verbose_name
  41. def __str__(self):
  42. return self.name

xadmin 安装的更多相关文章

  1. django xadmin 安装和使用

    官方文档: http://xadmin.readthedocs.io/en/docs-chinese/ 版本:django1.9 pip安装部署 pip install xadmin settings ...

  2. xadmin 安装详解

    1.安装必要的包 django>=1.9.0 django-crispy-forms>=1.6.0 django-import-export>=0.5.1 django-revers ...

  3. 个人博客开发之 xadmin 安装

    项目源码下载:http://download.vhosts.cn xadmin 下载地址:https://github.com/sshwsfc/xadmin或 https://github.com/s ...

  4. xadmin安装

    1 安装满足django2的版本 pip3 install https://codeload.github.com/sshwsfc/xadmin/zip/django2 2 urls.py里面增加路由 ...

  5. django xadmin安装

    安装方式一: 下载xadmin源码文件,下载之后,解压缩,将解压目录中的xadmin文件夹拷贝到项目项目文件中.下载地址:https://codeload.github.com/sshwsfc/xad ...

  6. xadmin安装和配置

    1.在虚拟环境pip install xadmin 2.安装完成之后在settings.py的install app里面添加xadmin和crispy_forms 3.在主项目url里面把原来的adm ...

  7. 第三百七十九节,Django+Xadmin打造上线标准的在线教育平台—xadmin的安装

    第三百七十九节,Django+Xadmin打造上线标准的在线教育平台—xadmin的安装 xadmin介绍 xadmin是基于Django的admin开发的更完善的后台管理系统,页面基于Bootstr ...

  8. 安装xadmin后台管理插件

    django自带的admin后台管理功能太少.使用国人开发的xadmin后台,使用pip install xadmin安装在线包时,会出错,其中的README.rst是utf8格式,我们win7系统默 ...

  9. django安装使用xadmin

    Xadmin介绍 直接替换掉Django自带的admin系统,并提供了很多有用的东西:完全的可扩展的插件支持,基于Twitter Bootstrap的漂亮UI. 完全替代Django admin 支持 ...

随机推荐

  1. 数据可视化之DAX篇(十二)掌握时间智能函数,同比环比各种比,轻松搞定!

    https://zhuanlan.zhihu.com/p/55841964 时间可以说是数据分析中最常用的独立变量,工作中也常常会遇到对时间数据的对比分析.假设要计算上年同期的销量,在PowerBI中 ...

  2. Python之介绍、基本语法、流程控制

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...

  3. Kafka常用指令

    工作中经常会用到的指令   # 查询topic为test的partition数量 ./kafka-topics.sh --zookeeper localhost:2181/kafka --topic ...

  4. 在运行vue项目时,执行npm install报错小记

    在运行vue项目时,执行npm install 报错,导致后续的执行报各种错误,根据报错,尝试了网上的各种办法,最后发现时网络问题下载失败导致,解决办法: 安装cnpm==>npm instal ...

  5. C/C++中的 if(指针变量) 和 if(!指针变量)

    目录 if(指针变量) 代码演示 if(指针变量) 解读代码 if(!指针变量) 解读代码 总结 替代方案.推荐写法!!!!! if(指针变量) 当把一个指针作为条件表达式时,所要判断的条件实际上就是 ...

  6. Python Hacking Tools - Web Scraper

    Preparation: Python Libray in the following programming: 1. Requests Document: https://2.python-requ ...

  7. Linux好学吗?怎么自学Linux?6个值得你去学习Linux的理由!

    两个多月前,我对日常工作做出了一个非常重要的决定-我决定从Windows切换到Linux,将其作为个人和办公笔记本电脑的主要系统.除了开始时一些小的驱动程序问题之外,切换非常平稳,我不会考虑返回.如果 ...

  8. 导出Telegram贴纸

    如何导出Telegram的贴纸1.在Telegram中 @StickerSetBot 机器人2.输入 /newpack 开启机器人,会提示 OK now send me stickers or sti ...

  9. JMS资源文件下载列表

    网关程序(Gateway) https://files.cnblogs.com/files/IWings/Gateway.zip 网关裁判程序(GatewayReferee) https://file ...

  10. Terminal终端控制台常用操作命令

    新建文件夹和文件 cd .. 返回上一级 md test 新建test文件夹 md d:\test\my d盘下新建文件夹 cd test 进入test文件夹 cd.>cc.txt 新建cc.t ...