shhnwangjian

版本:django1.9

 

pip安装部署

pip install xadmin
  • settings.py配置

INSTALLED_APPS中增加2个app:xadmin、crispy_forms

INSTALLED_APPS = [
    \'django.contrib.admin\',
    \'django.contrib.auth\',
    \'django.contrib.contenttypes\',
    \'django.contrib.sessions\',
    \'django.contrib.messages\',
    \'django.contrib.staticfiles\',
    \'xadmin\',
    \'crispy_forms\',
]
  • urls.py配置,xadmin替换admin
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),
]
  • 数据库同步
makemigrations
migrate
  • 访问首页

 

 

源码安装部署

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

解压xadmin-master.zip文件

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

 

xadmin注册

已在models创建表EmailVerifyRecord

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文件

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文件增加

from xadmin import views

class BaseSetting(object):
    enable_themes = True
    use_bootswatch = True

xadmin.site.register(views.BaseAdminView, BaseSetting)

 

全局应用

  • 页头和页尾自定义

adminx.py文件增加

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文件增加

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文件

# -*- coding: utf-8 -*-
from django.apps import AppConfig


class UsersConfig(AppConfig):
    name = \'users\'
    verbose_name = u\'用户信息\'

__init__.py文件

default_app_config = "users.apps.UsersConfig"

 

font awesome自定义

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

下载后覆盖css、fonts目录

在adminx.py文件中引入model_icon

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源码中加入下面内容

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

修改密码,需要更改源码

 

actions制作案例

adminx.py文件内容

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自带的日志记录。用于审计操作者的操作内容。

 

分类:

技术点:

相关文章:

  • 2021-07-16
  • 2022-12-23
  • 2021-09-03
  • 2021-12-04
  • 2021-05-13
  • 2022-02-01
  • 2021-08-27
  • 2021-09-08
猜你喜欢
  • 2022-01-20
  • 2022-12-23
  • 2022-12-23
  • 2021-12-07
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案