「Django」Xadmin应用
第一:命令安装xadmin2
pip install xadmin2
第二:setting.py中设置 INSTALLED_APPS
INSTALLED_APPS = (
...
'xadmin',
'crispy_forms',
'reversion',
...
)
第三:urls.py中设置
import xadmin
xadmin.autodiscover()
from xadmin.plugins import xversion
xversion.register_models()
urlpatterns = [
path('xadmin/',xadmin.site.urls),
]
第四:数据库同步,命令行下输入
#数据库同步命令
python manage.py makemigrations
python manage.py migrate
第五:将django模块注册到xadmin后台
1.将app注册到xadmin
app中新建adminx.py文件
import xadmin
from .models import * class relayControlXadmin(object):
#后台显示选择
list_display = ['time', 'oneCH', 'twoCH']
#搜索选择 关联其他表的字段不要加入搜索列表,否则搜索时候会出错
search_fields = ['time', 'oneCH', 'twoCH']
#过滤器选择
list_filter = ['time', 'oneCH', 'twoCH']
#设置后台图标
model_icon = 'fa fa-user' xadmin.site.register(relayControl,relayControlXadmin)
注:
引入自定义的ico 案例
官网下载:http://www.fontawesome.com.cn/ 下载后覆盖xadmin\static\xadmin下的css、fonts目录
对应model
class relayControl(models.Model):
time = models.DateTimeField(auto_now=True,verbose_name='操作时间')
oneCH = models.BooleanField(verbose_name='一号继电器',null=True,blank=True)
twoCH = models.BooleanField(verbose_name='二号继电器',null=True,blank=True) class Meta:
verbose_name = '继电器控制'
verbose_name_plural = verbose_name def __str__(self):
return self.time
2、设置admix主题和定制头尾部并设置左侧列表收起
import xadmin
from .models import *
from xadmin import views #xadmin后台头尾定制
class GlobalSetting(object):
site_title = "****项目后台管理系统"
site_footer = "http://www.runge.net/"
#左侧的列表紧缩间隔设置
menu_style = "accordion" xadmin.site.register(views.CommAdminView, GlobalSetting) #xadmin后台主题设置
class BaseSetting(object):
enable_themes = True
use_bootswatch = True xadmin.site.register(views.BaseAdminView, BaseSetting)
第六:App后台显示中文名
1、settings设置
INSTALLED_APPS = [
...
'users.apps.AppConfig',
'workers.apps.WorkersConfig',
'item.apps.ItemConfig',
'www.apps.WwwConfig',
'control.apps.ControlConfig',
'xadmin',
'crispy_forms',
'reversion'
]
2.各App中apps.py设置
from django.apps import AppConfig class ControlConfig(AppConfig):
name = 'control'
verbose_name = '操作模块'
「Django」Xadmin应用的更多相关文章
- 「Django」contenttypes基本用法
当一张表和多个表ForeignKey关联,并且多个FK中只能选择其中一个或其中n个时,可以利用contenttypes,只需定义三个字段就搞定! contenttypes 是Django内置的一个应用 ...
- 「Django」rest_framework学习系列-API访问跨域问题
#以中间件方式解决API数据访问跨域问题1.API下新建文件夹下写PY文件a.引入内置类继承: from django.middleware.common import MiddlewareMixin ...
- 「Django」rest_framework学习系列-序列化
序列化方式一 :在业务类里序列化数据库数据 class RolesView(APIView): def get(self,request,*args,**kwargs): roles = models ...
- 「Django」数据库访问优化
先做性能分析 - 两个工具 django.db.connection from django.db import connection# contextprint connection.queries ...
- 「Django」学习之路,持续更改
一.setting设置 1.设置 局域网可以部署连接 ALLOWED_HOSTS = ['*.besttome.com','192.168.1.100'] 2.static配置 STATIC_URL ...
- 「Django」与mysql8连接的若干问题
1.setting配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', #数据库驱动名 'NAME': 'my_tes ...
- 「Django」Django内置email发送邮件
Django内置email发送邮件 1.首先在settings.py文件设置相关参数 STATIC_URL = '/static/' # 设置邮件域名 EMAIL_HOST = 'smtp.163.c ...
- 「Django」浏览+1的操作
适应于网页.文章等浏览次数统计 1.Models设置:添加viewed方法 class NewsTitle(models.Model): title = models.CharField(max_le ...
- 「Django」rest_framework学习系列-路由
自动生成4个url路由:from rest_framework import routersrouter = routers.DefaultRouter()router.register(r'wrx' ...
随机推荐
- php控制访问人数的方法
php控制访问人数的方法 <pre>//添加访问人数 public function addfangwen() { header("Content-type:text/html; ...
- php去掉字符串中的最后一个字符和汉字
###php去掉字符串中的最后一个字符和汉字 1.php去掉字符串中的最后一个字符: //方法一: $newstr = substr($str,0,strlen($str)-1); //方法二: $n ...
- ORACLE的客户端、后台进程
Oracle数据库进程之服务器进程详解 Oracle实例主要有三类进程:服务器进程.后台进程和从属进程.这里介绍一下Oracle数据库服务器进程的相关知识 Oracle数据库中的各个进程要完成某个特定 ...
- PAT(B) 1012 数字分类(Java)
题目链接:1012 数字分类 代码 /** * Score 20 * Run Time 142ms * @author wowpH * @version 1.1 */ import java.util ...
- pandas数据结构之Panel笔记
Panel创建的是三维的表 items:坐标轴0,索引对应的元素是一个DataFrame major_axis:坐标轴1,DataFrame里的行标签 minor_axis:坐标轴2,DataFram ...
- ASP.NET Core启动流程
1. 引言 对于ASP.NET Core应用程序来说,我们要记住非常重要的一点是:其本质上是一个独立的控制台应用,它并不是必需在IIS内部托管且并不需要IIS来启动运行(而这正是ASP.NET Cor ...
- IDEA中通过Maven插件使用MyBatis Generator
这样做更简单,参考: IDEA集成MyBatis Generator 插件 详解
- 怎样给回调函数绑定this
在三种绑定this的方法中, Function.prototype.call() 和 Function.prototye.apply() 都是会立即执行该函数的, 但回调函数是不能立即执行的, 它只是 ...
- vue 数组对象取对象的属性: Cannot read property 'xxxx' of undefined
{{ list[0].name }} list[0]没有定义 能正确打印出想要的结果,但就是报错,外面套个v-for就没错了 很费解 看到文章说是与异步有关,解决办法: <template v- ...
- C#基础--go to
goto语句的用法非常灵活,你可以用它实现很多功能,但是由于goto语句的跳转影响程序的结构,在使用的时候会使人迷茫,所以一般"教材"上都不建议使用,但是用它可以实现递归,循环,选 ...