首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >django集成django-xadmin

django集成django-xadmin

作者头像
菲宇
发布2019-06-11 20:29:09
8790
发布2019-06-11 20:29:09
举报
文章被收录于专栏:菲宇菲宇

第一步安装xadmin-django2

python setup.py install

安装依赖pip install -r requirements.txt

第二步setting配置xadmin

INSTALLED_APPS = [

'xadmin',  # 添加
'crispy_forms',  # 添加
'reversion',  # 添加(可选)

...

]

第三步urls.py配置,xadmin替换admin

1 2 3 4 5 6 7 8

from django.conf.urls import url from django.contrib import admin import xadmin urlpatterns = [ # url(r'^admin/', admin.site.urls), url(r'^xadmin/', xadmin.site.urls), ]

数据库同步

1 2

makemigrations migrate

  • 访问首页

源码安装部署

下载:https://github.com/sshwsfc/xadmin

解压xadmin-master.zip文件

将xadmin-master文件中xadmin目录复制到自己的django项目下

xadmin注册

已在models创建表EmailVerifyRecord

1 2 3 4 5 6 7 8 9

class EmailVerifyRecord(models.Model): email_choices = ( ('register', u'注册'), ('forget', u'找回密码'), ) code = models.CharField(max_length=20, verbose_name=u'验证码') email = models.EmailField(max_length=50, verbose_name=u'邮箱') send_type = models.CharField(choices=email_choices, max_length=10, verbose_name=u'验证码类型') send_time = models.DateTimeField(default=datetime.now, verbose_name=u'发送时间')

在创建的app下创建adminx.py文件

1 2 3 4 5 6 7 8 9

import xadmin from .models import EmailVerifyRecord class EmailVerifyRecordAdmin(object): list_display = ['code', 'email', 'send_type', 'send_time'] search_fields = ['code', 'email', 'send_type'] list_filter = ['code', 'email', 'send_type', 'send_time'] xadmin.site.register(EmailVerifyRecord, EmailVerifyRecordAdmin)

主题应用

adminx.py文件增加

1 2 3 4 5 6 7

from xadmin import views class BaseSetting(object): enable_themes = True use_bootswatch = True xadmin.site.register(views.BaseAdminView, BaseSetting)

全局应用

  • 页头和页尾自定义

adminx.py文件增加

1 2 3 4 5 6 7

from xadmin import views class GlobalSetting(object): site_title = "shhnwangjian后台管理系统" site_footer = "http://www.cnblogs.com/shhnwangjian/" xadmin.site.register(views.CommAdminView, GlobalSetting)

  • 左侧app中文名称定义和多表紧缩

修改前

修改后

adminx.py文件增加

1 2 3 4 5 6 7 8

from xadmin import views class GlobalSetting(object): site_title = "shhnwangjian后台管理系统" site_footer = "http://www.cnblogs.com/shhnwangjian/" menu_style = "accordion" xadmin.site.register(views.CommAdminView, GlobalSetting)

apps.py文件

1 2 3 4 5 6 7

# -*- coding: utf-8 -*- from django.apps import AppConfig class UsersConfig(AppConfig): name = 'users' verbose_name = u'用户信息'

__init__.py文件

1

default_app_config = "users.apps.UsersConfig"

font awesome自定义

官网下载:http://fontawesome.io/

下载后覆盖css、fonts目录

在adminx.py文件中引入model_icon

1 2 3 4 5 6 7

class EmailVerifyRecordAdmin(object): list_display = ['code', 'email', 'send_type', 'send_time'] search_fields = ['code', 'email', 'send_type'] list_filter = ['code', 'email', 'send_type', 'send_time'] model_icon = 'fa fa-address-book-o' xadmin.site.register(EmailVerifyRecord, EmailVerifyRecordAdmin)

model_icon这个值,在http://fontawesome.io/icons/ 中选中的图标或class内容,如下图

引用自定义的用户信息

如上图目录中xadmin源码中加入下面内容

1 2

from django.contrib.auth import get_user_model User = get_user_model()

修改密码,需要更改源码

actions制作案例

adminx.py文件内容

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

from django.core.exceptions import PermissionDenied from xadmin.views.base import filter_hook from xadmin.util import model_format_dict, model_ngettext class zabbixitmes_display_off_action(BaseActionView): action_name = "zabbixitmes_display_off_action" description = u'%(verbose_name_plural)s 展示和采集关闭' model_perm = 'change' @filter_hook def change_models(self, queryset): n = queryset.count() if n: self.log('change', (u' %(count)d %(items)s. 展示和采集关闭') % {"count": n, "items": model_ngettext(self.opts, n)}) for obj in queryset: obj.display_insert = 0 obj.save() def do_action(self, queryset): if not self.has_change_permission(): raise PermissionDenied if self.request.POST: self.change_models(queryset) return None

提示:可以参考BaseActionView中的删除DeleteSelectedAction,可以实现xadmin自带的日志记录。用于审计操作者的操作内容。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年05月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 源码安装部署
  • xadmin注册
  • 主题应用
  • 全局应用
  • font awesome自定义
  • 引用自定义的用户信息
  • actions制作案例
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档