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

源码集成:github下载源码(一定要下载django2的文件名为:xadmin-django2.zip,解压后里面有个xadmin就是我们需要的xadmin源码了)
项目的根目录创建一个文件夹为:extra_apps,将下载的好xadmin源码拷贝到extra_apps目录中如下:

通过pycharm 选中extra_apps文件夹点击鼠标右键选中菜单mark directory as 选择 sources root就可以变成上面的蓝色文件夹目录就可以了。

安装依赖项:
#pip install git+git://github.com/sshwsfc/xadmin.git@django2 依赖项:
django-crispy-forms
django-import-export
django-reversion
django-formtools
future
httplib2
six
Xadmin配置
settings.py配置
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0,os.path.join(BASE_DIR,'extra_apps'))
sys.path.insert(0,os.path.join(BASE_DIR,'polls')) INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
……
'polls', #应用app
'xadmin',
'crispy_forms',
'reversion',
]
urls.py配置
from django.contrib import admin
from django.urls import include, path
import xadmin urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
path('xadmin/',xadmin.site.urls),
]
setting.py设置成中文
LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'Asia/Shanghai' USE_I18N = True USE_L10N = True USE_TZ = False
bug修改

TypeError at /xadmin/xadmin/userwidget/add/ render() got an unexpected keyword argument 'renderer'错误 修改项目中xadmin/views/dashborad.py中的render(),在render()中添加参数:renderer=None,即可解决。


运行项目
先执行python manage.py makemigrations 然后执行python manage.py migrate 生成数据库
执行 python manage.py runserver (如果缺少库的话自行安装相应的库就可以了),
当访问后台的时候可以看到如下效果说明成功了

中文板式:

创建管理员
python manage.py createsuperuser
Django admin修改用户密码
python manage.py shell
from django.contrib.auth.models import User #引入管理员密码存放的数据库
user=User.objects.filter() #查找该数据库里有哪些用户
user
输出user 可以看到用户名,我这里只有一个admin
[<User: admin>]
重置密码,
user = User.objects.get(username='admin') #获取名称为admin的用户
user.set_password('') #设置密码
user.save() # 保存user对象
Django admin修改注册表信息
xadmin后台如果要对表的内容增删改查,跟之前的admin.py文件里面写注册表信息一样,需在admin.py同一级目录新建一个adminx.py的文件。
然后在adminx.py文件控制页面上需显示的内容。
Models模块
from django.utils import timezone
import datetime class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published') def __str__(self):
return self.question_text def was_published_recently(self):
now = timezone.now()
return now - datetime.timedelta(days=1) <= self.pub_date <= now class Choice(models.Model):
question = models.ForeignKey(Question,on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0) def __str__(self):
return self.choice_text
adminx.py文件
在admin.py文件的同一目录新建一个adminx.py(注意只能是adminx.py,不能叫其它的名称)
在adminx.py里与之前的admin.py代码有一些不一样
- 之前import admin, 这里import xadmin
- 之前注册表时继承admin.ModelAdmin, 这里继承object
- 之前inlines 关联的表(class MoreInfo)继承admin.StackedInline, 这里继承object
- 之前可以有2种注册方式,可以用装饰器方法@admin.register(表类名),这里只能通过xadmin.site.register(表类名, xxx)方式
import xadmin
from .models import Question, Choice class MoreInfo(object):
model = Choice class ControlQuestion(object):
# 显示的字段
list_display = ('question_text', 'pub_date')
# 搜索条件
search_fields = ('question_text',) # 每页显示10条
list_per_page = 10 # 在Question页面显示更多信息Choice
inlines = [MoreInfo] class ControlChoice(object):
list_display = ["question", "choice_text"] # 注册Question表
xadmin.site.register(Question, ControlQuestion)
xadmin.site.register(Choice, ControlChoice)
xadmin列表页显示


django安装使用xadmin的更多相关文章
- Django安装Xadmin步骤
在Django中安装Xadmin替换原始的admin,下面介绍两种方法安装 第一种方法:pip安装 第一步: 直接pip安装xadmin pip install xadmin pip会同时安装上面三个 ...
- Django配置后台xadmin管理界面
Django配置后台xadmin管理界面 python版本3.6.5 Django版本1.10.8(刚开始是2.1.5,由于各种错误,改成了低版本) 1.xadmin的安装,下载地址https://g ...
- Python3升级3.6强力Django+杀手级xadmin打造在线教育平台☝☝☝
Python3升级3.6强力Django+杀手级xadmin打造在线教育平台☝☝☝ 教程 Xadmin安装方法: settings.py 的配置
- Django 插件之 Xadmin实现富文本编辑器
此文为前一篇文章的续写: Django 插件之 Xadmin Ueditor 介绍 UEditor 是由百度 web 前端研发部开发所见即所得富文本 web 编辑器,具有轻量,可定制,注重用户体验等特 ...
- Python3升级3.6强力Django+杀手级xadmin打造在线教育平台✍✍✍
Python3升级3.6强力Django+杀手级xadmin打造在线教育平台 教程 Xadmin安装方法: settings.py 的配置: users App 下的 adminx.py 的配置:
- Django 学习之Xadmin
一.xadmin的特点 1.基于Bootstrap3:Xadmin使用Bootstrap3.0框架精心打造.基于Bootstrap3,Xadmin天生就支持在多种屏幕上无缝浏览,并完全支持Bootst ...
- windows环境下Django安装配置
--python下载 https://www.python.org/downloads/ --pip 下载 https://pypi.python.org/pypi/pip --pip 安装及路径 解 ...
- python Django 学习笔记(一)—— Django安装
注:本人python版本2.7.5 ,win7系统 安装Django https://www.djangoproject.com/download/ 官方下载Django-1.5.5.tar.gz 1 ...
- Django学习(一) Django安装配置
上一节介绍了如何搭建Python的开发环境,这次介绍一下如何搭建Django的开发环境. 第一.下载Django Django跟Python的版本对应 Django version Python ve ...
随机推荐
- Python +appium logger
封装日志模块 import logging def get_log(): # 配置日志参数 logger = logging.getLogger() logger.setLevel(logging.I ...
- python学习之多窗口切换
多窗口切换: from selenium import webdriver d = webdriver.Firefox() d.window_handles #显示所有的窗口 d.current_wi ...
- Zepto.js简介
Zepto.js简介 一.总结 一句话总结: Zepto.js语法和jquery起码百分之90相似,主要做移动端框架,和jquery mobile是一个类型的概念 1.Zepto.js做移动端的特点? ...
- 《exception》第九次团队作业:Beta冲刺与验收准备(大结局)
一.项目基本介绍 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 Exception 作业学习目标 1.掌握软件黑盒测试技术:2.学会编制软件项目 ...
- jQuery 查找和过滤
通常情况下选择器可以直接定位到我们想要的元素,但是,当我们拿到一个jQuery对象后,还可以以这个对象为基准,进行查找和过滤. 最常见的查找是在某个节点的所有子节点中查找,使用find()方法,它本身 ...
- Convert 输入字符串的格式不正确
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...
- 深入理解JVM内存分配和常量池
一.虚拟机的构成 虚拟结主要由运行时数据区.执行引擎.类加载器三者构成: 而我们所说的JVM内存模型指的就是运行时数据区,下面具体分析一下运行时数据区: 二.运行时数据区组成和各个区域的作用 我们看到 ...
- GSM/GPRS模块 AT指令集C语言编程——基于有方M660+和MSP430单片机
GSM/GPRS芯片是手机中负责收发短信.拨打电话以及访问GPRS网络的核心器件.有方M660+为深圳有方公司生产的一款超小封装的GSM/GPRS工业无线模块,可以提供高品质的语音.短信.数据业务等功 ...
- sort()函数中的key
d = { , , } #for k in d.items(): # print(k) content = list(d.items()) print(content) content.sort(ke ...
- ArrayList存储随机数字
package com.fgy.demo; import java.util.ArrayList; import java.util.Random; /** * ArrayList实现存储随机数字 * ...