xadmin 安装

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. 目录结构

.
├── __pycache__
│?? └── manage.cpython-36.pyc
├── apps
│?? ├── __pycache__
│?? ├── food
│?? │?? ├── __init__.py
│?? │?? ├── __pycache__
│?? │?? │?? ├── __init__.cpython-36.pyc
│?? │?? │?? ├── admin.cpython-36.pyc
│?? │?? │?? ├── adminx.cpython-36.pyc
│?? │?? │?? ├── apps.cpython-36.pyc
│?? │?? │?? └── models.cpython-36.pyc
│?? │?? ├── admin.py
│?? │?? ├── adminx.py
│?? │?? ├── apps.py
│?? │?? ├── migrations
│?? │?? │?? ├── 0001_initial.py
│?? │?? │?? ├── __init__.py
│?? │?? │?? └── __pycache__
│?? │?? │??     ├── 0001_initial.cpython-36.pyc
│?? │?? │??     └── __init__.cpython-36.pyc
│?? │?? ├── models.py
│?? │?? ├── tests.py
│?? │?? └── views.py
│?? └── user
│??     ├── __init__.py
│??     ├── __pycache__
│??     │?? ├── __init__.cpython-36.pyc
│??     │?? ├── admin.cpython-36.pyc
│??     │?? ├── adminx.cpython-36.pyc
│??     │?? ├── apps.cpython-36.pyc
│??     │?? └── models.cpython-36.pyc
│??     ├── admin.py
│??     ├── adminx.py
│??     ├── apps.py
│??     ├── migrations
│??     │?? ├── 0001_initial.py
│??     │?? ├── 0002_auto_20190621_1320.py
│??     │?? ├── __init__.py
│??     │?? └── __pycache__
│??     │??     ├── 0001_initial.cpython-36.pyc
│??     │??     ├── 0002_auto_20190621_1320.cpython-36.pyc
│??     │??     └── __init__.cpython-36.pyc
│??     ├── models.py
│??     ├── tests.py
│??     └── views.py
├── libs
├── manage.py
├── media
├── static
├── templates
├── utils
│?? └── __init__.py
└── xadmintest
    ├── __init__.py
    ├── __pycache__
    │?? ├── __init__.cpython-36.pyc
    │?? ├── settings.cpython-36.pyc
    │?? ├── urls.cpython-36.pyc
    │?? └── wsgi.cpython-36.pyc
    ├── settings.py
    ├── urls.py
    └── wsgi.py

配置

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

sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
sys.path.insert(0, os.path.join(BASE_DIR, 'libs'))
  1. 在 settings.py 中的 INSTALL_APPS 添加 xadmin, reversion, crispy_forms
  2. 将 settings.py 中的语言设置成使其支持中文
    
    LANGUAGE_CODE = 'zh-hans'
    TIME_ZONE = 'Asia/Shanghai'
    USE_I18N = True
    USE_L10N = True
    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

class UserAdmin(object):

    list_display = ['name', 'birthday', 'gender']
    search_fields = ['name', 'birthday', 'gender']
    list_filter = ['name', 'birthday', 'gender']

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

class BaseSetting(object):

    enable_themes = True
    use_bootswatch = True

class GlobalSettings(object):

    site_title = '我的管理后台'
    site_footer = '我的后台'

xadmin.site.register(views.BaseAdminView, BaseSetting)
xadmin.site.register(views.CommAdminView, GlobalSettings)
  1. 配置后台 app 显示中文, 在每一个 app 下的 __init__.py 中添加

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

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

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

# libs/xadmin/plugins/ueditor.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import xadmin
from xadmin.views import BaseAdminPlugin, CreateAdminView, ModelFormAdminView, UpdateAdminView
from DjangoUeditor.models import UEditorField
from DjangoUeditor.widgets import UEditorWidget
from django.conf import settings

class XadminUEditorWidget(UEditorWidget):

    def __init__(self, **kwargs):
        self.ueditor_options = kwargs
        self.Media.js = None
        super(XadminUEditorWidget,self).__init__(kwargs)

class UeditorPlugin(BaseAdminPlugin):

    def get_field_style(self, attrs, db_field, style, **kwargs):
        if style == 'ueditor':
            if isinstance(db_field, UEditorField):
                widget = db_field.formfield().widget
                param = {}
                param.update(widget.ueditor_settings)
                param.update(widget.attrs)
                return {'widget':XadminUEditorWidget(**param)}
        return attrs

    def block_extrahead(self, context, nodes):
        print(settings.STATIC_URL)
        js = '<script type="text/javascript" src="%s"></script>' % (settings.STATIC_URL + "ueditor/ueditor.config.js")
        js += '<script type="text/javascript" src="%s"></script>' % (settings.STATIC_URL + "ueditor/ueditor.all.min.js")
        nodes.append(js)

xadmin.site.register_plugin(UeditorPlugin, UpdateAdminView)
xadmin.site.register_plugin(UeditorPlugin, CreateAdminView)

# apps/yourmodel/models.py

class Food(models.Model):

    name = models.CharField(max_length=30, verbose_name='食品名称')
    price = models.FloatField(default=0, verbose_name='价格')
    brief = models.TextField(max_length=500, verbose_name='简介')
    description = UEditorField(verbose_name='内容', imagePath='food/images/', filePath='food/files/', default='')
    supplier = models.ForeignKey(Supplier, on_delete=models.CASCADE)

    class Meta:
        verbose_name = '食品'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.name

原文地址:https://www.cnblogs.com/megachen/p/11074716.html

时间: 2024-08-30 12:44:08

xadmin 安装的相关文章

django安装使用xadmin

Xadmin介绍 直接替换掉Django自带的admin系统,并提供了很多有用的东西:完全的可扩展的插件支持,基于Twitter Bootstrap的漂亮UI. 完全替代Django admin 支持基于Twitter Bootstrap的UI主题 支持可扩展的插件 更好的过滤器,日期范围,数量范围等 内置xls,csv,xml和json格式数据导出 仪表板页面和小部件支持 (暂时用不到) 现场书签 完整的CURD方法(增删改查) Xadmin安装 xadmin下载: https://githu

xadmin学习笔记(一)——编程准备

前言 xadmin是GitHub上的开源项目,它是Django admin的超强升级版,提供了强大的插件系统,丰富的内置功能,以及无与伦比的UI主题,使管理系统的实现变得异常简单.详情请参见官方网址. 首先声明,本人也是初学菜鸟,欢迎大家加入xadmin官方交流群讨论,QQ群号:282936295. 回归主题,介绍xadmin的编程环境的配置,基于xadmin的编程语言考虑,将从以下步骤来完成xadmin的安装. 1.Python安装 Python分为3.x版和2.x版,由于xadmin并没有限

集成xadmin源码到项目的正式姿势

xadmin是强大的,但是为了更好的后期定制开发,可能会修改到xadmin的源码. 因此还是推荐将xadmin源码集成到自己的项目中. 1.pip install xadmin 安装xadmin的模块,系统会自动安装相关依赖. 2.在settings里面加入apps 'xadmin','crispy_forms' 3.生成数据表.然后修改url import xadmin r'^xadmin/', xadmin.site.urls), 4.找到python的安装目录,在Lib\site-pack

py3.6 + xadmin的自学网站搭建

xadmin安装 由于安装时需要依赖包并且暂时不支持py3等原因,直接pip install的方法很容易就狗带了. 说一下我在网上找到的安装方式,在GitHub上有这个项目的开源代码,并且还有很多个版本可以选择. 克隆一份,clone地址:xadmin,新建一个空白的README.rst代替之前的文件. cmd进入dos,执行python setup.py  install,出现gbk解码问题,返回上一步确定README.rst是一个空白文件.这样安装xadmin就完成了. 狸猫换太子 算了还是

Django扩展xadmin后台管理

python:3.7.2django:2.1.2 githup:https://github.com/sshwsfc/xadmin 安装xadmin django版本2.0及以上一不能使用pip install xadmin进行安装,根据作者的安装说明使用一下命令直接从githup安装 pip install git+git://github.com/sshwsfc/xadmin.git@django2 现有项目引入xadmin settings.py设置引入xadmin应用 INSTALLED

Xadmin添加用户小组件出错render() got an unexpected keyword argument &#39;renderer

环境: Python 3.7 Django 2.1 Xadmin 原因: render函数在django2.1上有变化 解决方法: 进入xadmin安装路径,编辑xadmin/views/dashboard.py 36 #render() got an unexpected keyword argument 'renderer' 37 #修改bug, 添加renderer 38 39 def render(self, name, value, attrs=None, renderer=None)

drf 其他功能组件 - 限流-过滤-排序-分页-异常处理-生成接口文档-Xadmin

目录 限流Throttling 使用 可选限流类 实例 过滤Filtering 排序 分页Pagination 可选分页器 异常处理 Exceptions REST framework定义的异常 自动生成接口文档 安装依赖 设置接口文档访问路径 文档描述说明的定义位置 访问接口文档网页 Xadmin 安装 使用 限流Throttling 可以对接口访问的频次进行限制,以减轻服务器压力. 一般用于付费购买次数,投票等场景使用. 使用 可以在配置文件中,使用DEFAULT_THROTTLE_CLAS

Django配置Xadmin

安装Xadmin 安装 Xadmin 的时候,需要注意 Django 的版本,Xadmin 在 Github 上的仓库 master 分支是支持 Django 1.9 版本的,假如是 Django 2.0 版本的,则需要从 Django2 分支安装 # 从 PyPI 安装 支持 django 1.9 pip install xadmin # 支持 django 1.4 $ pip install django-xadmin # 从源码安装 支持django 2.0 $ pip install g

【Python3.6+Django2.0+Xadmin2.0系列教程一】环境搭建及项目创建

由于工作需要,接触了大半年时间的Django+xadmin框架,一直没空对这块对进行相关的梳理.最近在同事的怂恿下,就在这分享下笔者的学习及工作经验吧. 好了,话不多说,下面开始进入正题: 环境需求: 笔者的工作系统环境:Mac 10.13.4+Python3.6.x+Django2.0.x+Xadmin2.0 因此本系列教程均是以此组合为基础展开讲解.其他系统版本也基本适用,有小部分不兼容之处请自行测试. 一.Django及xadmin安装 可以使用pip命令进行安装,或者直接下载安装包用py