xadmin 安装
xadmin 安装
环境(一定要一样)
- Python 3.6.2
- Django 2.0
安装
pip install django==2.0, 指定特定的版本pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2, 从官方的 github 上下载 django2 分支的包, 也可通将该包下载下来再使用 pip 安装, 但是不推荐使用 pip 安装, 建议将 xadmin 放到 libs 下- 目录结构
.
├── __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
配置
- 所有的 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'))
在 settings.py 中的
INSTALL_APPS添加xadmin,reversion,crispy_forms将 settings.py 中的语言设置成使其支持中文
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False # 设置为 False 则使用本地时间,否则会使用国际时间
如果使用 django 自带的用户模块, 还要在 settings.py 中添加
AUTH_USER_MODEL = 'user.UserProfile'来说重载系统的 User, 其中 user 是 app 名, UserProfile 是该 app 下 models.py 文件中定义的继承了django.contrib.auth.model.AbstractUser的类的类名将 url.py 中的 url 改为
path('xadmin/', xadmin.site.urls)为每一个 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 中会失败
- 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)
- 配置后台 app 显示中文, 在每一个 app 下的
__init__.py中添加
default_app_config = 'user.apps.UserConfig' # 这里的 user 为 app 名, UserConfig 为 apps.py 中的类的类名, 要在 UserConfig 中填写 name 和 verbose_name 两个属性, 其中 verbose_name 为中文
- 迁移数据库
./manage.py makemigrations && ./manage.py migrate
- 创建管理员用户
./manage.py createsuperuser
- 如果要在模型中使用富文本编辑器, 需要拷贝 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
xadmin 安装的更多相关文章
- django xadmin 安装和使用
官方文档: http://xadmin.readthedocs.io/en/docs-chinese/ 版本:django1.9 pip安装部署 pip install xadmin settings ...
- xadmin 安装详解
1.安装必要的包 django>=1.9.0 django-crispy-forms>=1.6.0 django-import-export>=0.5.1 django-revers ...
- 个人博客开发之 xadmin 安装
项目源码下载:http://download.vhosts.cn xadmin 下载地址:https://github.com/sshwsfc/xadmin或 https://github.com/s ...
- xadmin安装
1 安装满足django2的版本 pip3 install https://codeload.github.com/sshwsfc/xadmin/zip/django2 2 urls.py里面增加路由 ...
- django xadmin安装
安装方式一: 下载xadmin源码文件,下载之后,解压缩,将解压目录中的xadmin文件夹拷贝到项目项目文件中.下载地址:https://codeload.github.com/sshwsfc/xad ...
- xadmin安装和配置
1.在虚拟环境pip install xadmin 2.安装完成之后在settings.py的install app里面添加xadmin和crispy_forms 3.在主项目url里面把原来的adm ...
- 第三百七十九节,Django+Xadmin打造上线标准的在线教育平台—xadmin的安装
第三百七十九节,Django+Xadmin打造上线标准的在线教育平台—xadmin的安装 xadmin介绍 xadmin是基于Django的admin开发的更完善的后台管理系统,页面基于Bootstr ...
- 安装xadmin后台管理插件
django自带的admin后台管理功能太少.使用国人开发的xadmin后台,使用pip install xadmin安装在线包时,会出错,其中的README.rst是utf8格式,我们win7系统默 ...
- django安装使用xadmin
Xadmin介绍 直接替换掉Django自带的admin系统,并提供了很多有用的东西:完全的可扩展的插件支持,基于Twitter Bootstrap的漂亮UI. 完全替代Django admin 支持 ...
随机推荐
- SQLAlchemy04 /SQLAlchemy查询高级
SQLAlchemy04 /SQLAlchemy查询高级 目录 SQLAlchemy04 /SQLAlchemy查询高级 1.排序 2.limit.offset和切片操作 3.懒加载 4.group_ ...
- Unity-ECS-实践
Archetypes原型 (它的存在使得遍历组件的命中率非常高) Archetype是一个容器,Unity规定每个ArcheType的大小16kb,不够就再开.始终保存内存的连续性 World 世界 ...
- C++ 简单介绍线段树
题目描述 如题,已知一个数列,你需要进行下面两种操作: 将某区间每一个数加上k. 求出某区间每一个数的和. 输入格式 第一行包含两个整数n,m分别表示该数列数字的个数和操作的总个数. 第二行包含n个用 ...
- 使用Java带你打造一款简单的外卖系统
[一.项目背景] 随着互联网时代的快速发展,便捷人民的生活,提高生活质量,外卖系统应运而生. 人们也喜欢享受着"足不出户,美食到家"的待遇,促使网上订餐行业快速发展. [二.项目目 ...
- PyQt5基础控件
QLabel标签 功能:在界面上显示文字.图片.链接等 接口: 方法 描述 setText() 设置显示的内容 setAlignment() 设置文字对齐方式 setToolTip() 设置提示信息 ...
- 深入了解PHP的生成器
在驾驶方面,速度并不会决定一切.但是在网络上,速度至关重要.你的应用程序越快,用户体验就越好.好吧,这时候有人就奇怪了,本文是关于PHP 生成器的,那么为什么我们要谈论速度呢?很快你就会发现,生成器在 ...
- Flutter日常笔记
factory修饰的构造方法 表示不是每次返回的都是新创建出来的对象, 可以取内存中已有的, 比如单例模式的书写 每次返回的都是一个实例, 这时要使用factory修饰构造方法 flutter不要求显 ...
- Kubernetes实战总结 - DevOps实现
一.概述 Git:一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理. Jenkins:一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作. M ...
- BUUCTF-web EasySearch (服务端包含注入ssi)
一打开就是登录页面 存在index.php.swp...(反正我是没有扫出来,题目没给提示),分析一波源码 <?php ob_start(); function get_hash(){ $cha ...
- Java基础加强笔记——测试、反射、注解
目录 1. Junit单元测试 2. 反射 3. 注解 Junit单元测试: 测试分类: 1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值. 2. 白盒测试:需要写代码的.关注程序具 ...