1、中文设置:

  settings.py中直接配置:

    LANGUAGE_CODE = "zh-hans"

    TIME_ZONG = "Asia/Shanghai"

2、菜单折叠:

  在users/xadmin.py中添加GLOBALSETTINGS

  from xadmin import views

  class GlobalSettings(object):

    site_title = "头部名称"

    site_footer = "脚部名称"

    menu_style = "accordion" # 菜单折叠

    apps_icons = {"appname":"icon"}  #设置app的显示图标

  xadmin.site.register(views.CommAdminView, GlobalSettings)

  

3、页面布局定制:

  class UserAdmin(object):

    def get_form_layout(self):

      if self.org_obj:

        self.form_layout = (

          Main(

            Filedset('',

              'username', 'password', css_class="unsort no_title"

            ),

            Fieldset(_('Personal info'),

              Row('firstname', 'lastname'), email

            ),

            Fieldset(

              _('permissions'),

              'grounps', 'userpermissions'

            ),

            Fieldset(

              _('important dates'),

              'last_login', 'date_joined'

            ),

          ),

          Side(

            Fieldset(

              _('status'),

              'is_active', 'is_stuff', "is_superuser"

            )

          )

        )

      return self.super(UserAdmin, self).get_form_layout()

  

4、更改图标

  更改app图标 通过app_icons来设置

class GlobalSetting(object):
site_title = "上海诺行信息技术有限公司"
site_footer = "COPYRIGHT © 2010 - 2018 ALL RIGHTS RESERVED"
menu_style ="accordion"
apps_icons = {"home":"fa fa-home", "products":"", "companyintroduction":"", "certifications":"fa fa-certificate",
"contactus":"fa fa-phone", "forum":"","logisticinformation":"",
"sourcedownload":"fa fa-download","trade":"fa fa-shopping-cart","users":"fa fa-user",
"wechatuser":"fa fa-user"}
更改model图标,通过model_icon来设置
class relativeFilesAdmin(object):
    model = relativeFiles
extra = 0
model_icon = "fa fa-download"
inField = "company"

可选的图标可查看 font awesome,可自行下载最新的图标包来替换现有的

font awesome : http://fontawesome.dashgame.com/

5、显示排序

  通过ordering配置

  class ProductListAdmin(object):

    ...

    ordering = ["sales_num",]

6、只读字段:

  readonly_fields = ["",""],如果想要自定义只读字段显示方式,可以重写get_readonly_fields():函数

7、不包含及不在list列表界面显示

  exclude = ["",""]

  注意,exclude和readonly_fields是冲突的,配置了readonly_fields,则exclude是无效的

8、inlineAdmin嵌套编辑

  假设A是B的外键

  class AAdmin(object):

    model = A

    extra = 1

  class BAdmin(object):

    list_display = ["",""]

    inlines = [A,]

  这样在编辑B的时候,就可以同时对A进行增删改查

  但是要注意一个问题,这里的A,里面一定要写明model =A,不能像B写list_display = [""],否则会报错 'NoneType' object has no attribute '_meta'

  extra:表示的是在编辑B的时候,展示几个A的可编辑框。不设置的话默认是3个,设置为0的话,则表示A编辑框是收起的。

    

9、两个管理器管理一张表

  对于A 继承B 的情况,我们可以对A和B使用同一张表来管理,而不用分别为A和B建立表

  

10、Xadmin中的View对应含义:

  1)views-->base.py:

    BaseAdminView:所有的AdminView的基类,继承自BaseAdminObject和Djano.views.generic.View,注册在该View上的插件 可以影响所有的AdminView,对应的模板是 base.html

    CommAdminView:继承于BaseAdminView,此类是用户登录后显示用到的View,也是登录后所有View的基类。该类的主要作用是创建Xadmin的通用元素,如系统菜单,用户信息等全局设置。

      所有 关于菜单,列表界面显示的样式等 都可以在此类中完成设置,如上面2中设置全局的属性用到的就是此基类。

      此基类对应的模板为:base_site.html, include/sitemenu_default.html

    ModelAdminView:基于model的AdminView的基础类,注册的插件可以影响所有基于model的view

      如我们在model里面设置的verbose_name,注册model时设置的model_icon等 通过在此类中展示

  2)views-->list.py

    ListAdminView:model列表页面view,它实现了数据排序和分页功能

    包含的可选择设置属性:

      list_display = []  | ()  可以是列表或者元组,设置要在list界面展示的字段

      list_display_link = () 设置作为链接去展示详情的字段

      search_fields = ()   设置搜索字段

      ordering = ()  设置排序字段

  3)views-->edit.py

    ModelFormAdminView:model编辑页面View

    此类是一个基类,CreateAdminView和UpdateAdminView继承自此类

    options 属性:

      readonly_fields = ()  #定义只读字段

      exclude = ["",""]  #定义的字段不会显示在编辑界面,但是和readonly_fields使用冲突,定义了readonly_fields的字段再定义exclude是无效的

      style_fields = ()  #定义该字段样式 如 style_fields= ("content":"ueditor"),以富文本方式展示

      save_as  = True/False  #是否显示另存为按钮

      form_layout = ()  #可以自定义detail界面的样式:        

        def get_form_layout(self):
        self.form_layout = (
        Main(
        Fieldset("title",
                  Row("name", "index"),
                  "link"
               ),
               Fieldset("title",
                  Row("name", "index"),
                  "link"
               ),
                ),
            Side(...)
        )
        return super(modelAdmin, self).get_form_layout()
      relfield_style = "fk-ajax"  # 对于下拉框采用ajax异步搜索加载的方式呈现
      list_editable = ["",""]    #直接以可编辑的方式展示,无需点开详情界面即可编辑

    CreateAdminView(ModelFormAdminView): model创建页面View

    UpdateAdminView(ModleFormAdminView):model修改页面View

  4)views--->delete.py

    DeleteAdminView(ModelFormAdminView):mode删除页面View

  5)views---->detail.py

    DetailAdminView(ModelFormAdminView):model详情页面View

  

												

二、xadmin----简单使用的更多相关文章

  1. 设计模式(二)简单工厂模式(Simple Factory Pattern)

    一.引言 这个系列也是自己对设计模式的一些学习笔记,希望对一些初学设计模式的人有所帮助的,在上一个专题中介绍了单例模式,在这个专题中继续为大家介绍一个比较容易理解的模式——简单工厂模式. 二.简单工厂 ...

  2. spring事务详解(二)简单样例

    系列目录 spring事务详解(一)初探事务 spring事务详解(二)简单样例 spring事务详解(三)源码详解 spring事务详解(四)测试验证 spring事务详解(五)总结提高 一.引子 ...

  3. mininet(二)简单的路由实验

    mininet(一)实验环境搭建 mininet(二)简单的路由实验 mininet(三)简单的NAT实验 在网上找了 好几个代码都是不能直接复现成功,这里把自己实现成功的代码给大家演示一下. 实验的 ...

  4. salesforce 零基础学习(四十二)简单文件上传下载

    项目中,常常需要用到文件的上传和下载,上传和下载功能实际上是对Document对象进行insert和查询操作.本篇演示简单的文件上传和下载,理论上文件上传后应该将ID作为操作表的字段存储,这里只演示文 ...

  5. Jmeter 快速入门教程(二)--创建简单web测试

    [版权所有: whoistester.com & jmeter.cf] http://wenku.baidu.com/linkurl=9zc4VHe6vUUeMdDZPpNsRehkazZFw ...

  6. MyBatis之二:简单增删改查

    这一篇在上一篇的基础上简单讲解如何进行增删改查操作. 一.在mybatis的配置文件conf.xml中注册xml与注解映射 <!-- 注册映射文件 --> <mappers> ...

  7. <数据结构基础学习>(二)简单的时间复杂度分析

    一.简单的复杂度分析 O(1) O(n) O(logn) O(logn) O(n^2) 大O描述的是算法的运行事件和输入数据之间的关系 Eg: 数组求和 public static int sum(i ...

  8. 计蒜客-跳跃游戏二 (简单dp)

    题目链接:https://nanti.jisuanke.com/t/20                                         跳跃游戏二 给定一个非负整数数组,假定你的初始 ...

  9. spring-data-jpa快速入门(二)——简单查询

    一.方法名解析 1.引言 回顾HelloWorld项目中的dao接口 public interface GirlRepository extends JpaRepository<Girl, In ...

  10. 初入码田--ASP.NET MVC4 Web应用开发之二 实现简单的增删改查

    初入码田--ASP.NET MVC4 Web应用之创建一个空白的MVC应用程序 初入码田--ASP.NET MVC4 Web应用开发之一 实现简单的登录 2016-07-29  一.创建M002Adm ...

随机推荐

  1. ERP按序打印问题

    按序打印只适合一个机器,不适合主副机模式,主副机模式请勾选同时打印 如果开启主副机模式勾选了按序打印,会造成副机下厨后厨不出单

  2. 初识Spring Boot

    ​ 1.Spring Boot简介 Spring Boot是由Pivotal团队提供的全新框架,用于简化基于Spring的搭建与开发过程,通过少量的代码创建Spring应用. 2.Spring Boo ...

  3. android 休眠唤醒机制分析(一) — wake_lock【转】

    Android的休眠唤醒主要基于wake_lock机制,只要系统中存在任一有效的wake_lock,系统就不能进入深度休眠,但可以进行设备的浅度休眠操作.wake_lock一般在关闭lcd.tp但系统 ...

  4. 高通平台如何使用QPST抓DUMP

    一 :确认手机状态 手机系统死机白屏后,使用USB线 连接手机和计算机.打开计算机设备管理器 ,当其中与手机相关的端口只有DIAG 口 项(9006端口)时,表明手机处于DUMP 模式,可以抓DUMP ...

  5. iOS开发创建UI的耗时操作处理

    项目中有网络请求.读写操作等一系列耗时操作时,为了避免阻塞主线程,我们会把这些耗时操作放到子线程中去处理,当处理完成后,再回到主线程更新UI,这样就不会阻塞主线程.但是创建UI的时候一般都是在主线程中 ...

  6. Linux学习历程——Centos 7重置root密码

    一.自述 最近刚刚接触linux,因为我设置密码比较随性,把自己做系统的时候设置的root密码给forget,每当系统崩溃,重新把虚拟机备份还原后,就面临无法登陆的尴尬情况,只得重置root密码,好了 ...

  7. Vue 学习笔记之快速入门篇

    Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅易于上手,还便于与 ...

  8. 解决“Eclipse中启动Tomcat后,http://localhost:8080/无法访问”的问题

    这个问题是eclipse造成的,我们可以修改配置来实现通过eclipse启动tomcat可以访问http://localhost:8080 打开Server试图(打开前不要启动tomcat),双击其中 ...

  9. 一个好看的php验证码源码

    <?php     $w = 80; //设置图片宽和高 $h = 26; $str = Array(); //用来存储随机码 $string = "ABCDEFGHIJKLMNOPQ ...

  10. css点滴1—八种方式实现元素垂直居中

    这里介绍实现元素垂直居中的方式,文章是参考了<css制作水平垂直居中对齐>这一篇文章. 1.行高和高度实现 这种方式实现单行垂直居中是很简单的,但是要保证元素内容是单行的,并且其高度是不变 ...