(一)重定义字段顺序:
修改对应应用目录下的admin.py
class PollAdmin(admin.ModelAdmin):
    fields = ['pub_date', 'question']  # 调整成实际需求的顺序
admin.site.register(Poll, PollAdmin)
 
(二)为字段进行分组
class PollAdmin(admin.ModelAdmin):
    fieldsets = [
        ('group1', {'fields': ['question']}),    # group1
        ('group2', {'fields': ['pub_date']}),    # group2
    ]
这里如果group1,group2替换成中文就会出现显示不了的问题,如何显示中文是个问题?(python3 已支持中文)
(三)将字段组进行初始隐藏显示
class PollAdmin(admin.ModelAdmin):
    fieldsets = [
        ('group1', {'fields': ['question']}),    
        ('group2', {'fields': ['pub_date'], 'classes': ['collapse']}),   # 设置为可折叠 
    ]
 
(四)设置子对象并设计成内联编辑
1、方法1
class ChoiceInline(admin.StackedInline):          # 定义内联对象
    model = Choice
    extra = 3
    
class PollAdmin(admin.ModelAdmin):
    fieldsets = [
        ('group1', {'fields': ['question']}),    
        ('group2', {'fields': ['pub_date'], 'classes': ['collapse']}),    
    ]
    inlines = [ChoiceInline]                     # 定义子对象的引用            
2、方法2(更加紧凑)
class ChoiceInline(admin.TabularInline):      #  StackedInline or TabularInline
    model = Choice
    extra = 3
(五)设置子对象并设计成内联编辑    
class PollAdmin(admin.ModelAdmin):
    list_display = ('question', 'pub_date')   # 定义列表中显示的字段
    fieldsets = [
        ('group1', {'fields': ['question']}),    
        ('group2', {'fields': ['pub_date'], 'classes': ['collapse']}),    
    ]
    inlines = [ChoiceInline]
 
(六)通过函数生成虚拟字段
models.py:
class Poll(models.Model):
    ... ...
    def was_published_recently(self):               # 通过函数定义虚拟字段
        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
    was_published_recently.admin_order_field = 'pub_date'  # 指定排序字段
    was_published_recently.boolean = True                  # 如果指定了这个字段显示的时候体现为图表,比较美观
    was_published_recently.short_description = 'Published recently?'  # 重定义字段显示名称,但是非数字段似乎不生效
admin.py:
class PollAdmin(admin.ModelAdmin):
    list_display = ('question', 'pub_date', 'was_published_recently')
 
问题:这里存在一个问题就模型定义和界面定义出现了混用。
 
(七)增加快速过滤器
class PollAdmin(admin.ModelAdmin):
    ... ... 
    list_filter = ['pub_date']         # 根据pub_date进行快速过滤
    ... ...
 
(八)设置对象的默认显示名称
class Poll(models.Model):
    ... ...
    def __unicode__(self):
        return self.question
 
(九)为字段增加搜索功能
class PollAdmin(admin.ModelAdmin):
    ... ...
    search_fields = ['question']
    ... ...
 
(十)增加日期下钻过滤(date drill down)
class PollAdmin(admin.ModelAdmin):
    ... ...
    date_hierarchy = 'pub_date'
    ... ...
 
 
(***)疑问:
1、如果一个model想包装成不同的界面该如何操作?
2、中文显示?

django学习笔记:AdminSite界面配置的更多相关文章

  1. PyCharm学习笔记(一) 界面配置

     通过Ctrl+鼠标滚轮调整字体大小  设置代码区默认字体及大小 设置调试区的字体大小 设置代码风格:如Tab缩进 定义Python模板文件 # @Time : ${DATE} ${TIME} # @ ...

  2. Django 学习笔记(六)MySQL配置

    环境:Ubuntu16.4 工具:Python3.5 一.安装MySQL数据库 终端命令: sudo apt-get install mysql-server sudo apt-get install ...

  3. Django学习笔记(一)——安装,创建项目,配置

    疯狂的暑假学习之 Django学习笔记(一) 教材  书<The Django Book> 视频:csvt Django视频 1.创建项目 django‐admin.py startpro ...

  4. Django学习笔记(9)—— 开发用户注册与登录系统

    一,项目题目: 开发用户注册与登录系统 该项目主要练习使用Django开发一个用户注册与登录的系统,通过这个项目然后巩固自己这段时间所学习的Django知识. 二,项目需求: 开发一个简单的用户登录与 ...

  5. Django学习笔记(4)——Django连接数据库

    前言 在MVC或者MTV设计模式中,模型(M)代表对数据库的操作.那么如何操作数据库呢?本小节就认真学习一下.首先复习一下Django的整个实现流程 ,然后再实现一下使用数据库的整个流程,最后学习一下 ...

  6. Django学习笔记(13)——Django的用户认证(Auth)组件,视图层和QuerySet API

    用户认证组件的学习 用户认证是通过取表单数据根数据库对应表存储的值做比对,比对成功就返回一个页面,不成功就重定向到登录页面.我们自己写的话当然也是可以的,只不过多写了几个视图,冗余代码多,当然我们也可 ...

  7. Django学习笔记(18)——BBS+Blog项目开发(2)主体思路及流程

    这篇博客主要完成一个BBS+Blog项目,那么主要是模仿博客园的博客思路,使用Django框架进行练习. 准备:项目需求分析 在做一个项目的时候,我们首先做的就是谈清楚项目需求,功能需求,然后才开始写 ...

  8. Django学习笔记(16)——扩展Django自带User模型,实现用户注册与登录

    一,项目题目:扩展Django自带User模型,实现用户注册与登录 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册,登录,用户认证,注销,修改密码等功能. ...

  9. Django 学习笔记1-- URLconf

    今天好像巴黎有点乱,希望明天太阳还会照常升起. 简介 Django 是一个由 Python 编写.开源并采用经典的 MVC 设计模式的 Web Full Stack 应用框架. 在 Django 中, ...

随机推荐

  1. C#之内存分配

    在C#中,内存分成5个区,他们分别是堆.栈.自由存储区.全局/静态存储区和常量存储区. 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区.里面的变量通常是局部变量.函数参数等 ...

  2. Lua------------------unity关于lua的使用

    关于Lua在Unity 中的使用   对于手机游戏,如果可以在线更新以实现bug修复.新功能添加等等,其好处自不必多说. 通过C#的反射机制,也可以实现某种程度上的脚本级更新,具体可以参考 http: ...

  3. Ubuntu 12.04安装Java开发环境(jdk1.7 + Eclipse)

    首先,去官网下载linux版本的jdk和eclipse tar包,并将其解压出来.我将jdk包发在了/usr/java/目录下,eclipse放在了/opt/目录下. 然后,配置java开发环境,即安 ...

  4. 7月目标 socket , 一致性哈希算法 ; mongodb分片; 分布式消息队列; 中间件的使用场景

      分布式的基础:一致性哈希  路由算法的一致性hash http://www.jiacheo.org/blog/174 http://www.tuicool.com/articles/vQVbmai ...

  5. org.in2bits.MyXls.XlsDocument 生成excel文件 ; 如果想读取模板再另外生成的话,试试 NPOI

    优点:不依赖Microsoft组件,在内存中操作excel,读写速度快.   缺点:无法读取模板,只能生成新的excel (我亲自测试是在读取完模板后,不能保存,也不能另存,并且其他人说这个读取还会有 ...

  6. Linux语言设置修改乱码

    1.system-config-language 命令语言改成英文.(安装yum install  system-config-language) 如何系统安装后,使用的语言不是自己想要的.但是在图形 ...

  7. 配置Tomcat监听80端口 配置Tomcat虚拟主机 Tomcat日志

    配置Tomcat监听80端口 • vim /usr/local/tomcat/conf/server.xml Connector port=" protocol="HTTP/1.1 ...

  8. 腾讯爱玩某处csrf导致骚扰用户(QQ弹窗+QQ会话+微博)

    点击提醒,然后抓包: POST /dyid_proc.php HTTP/1.1 Host: tx.qq.com User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW ...

  9. gridview列超链接的几种设置方法

    <asp:GridView ID="GridView1" runat="server" Width="100%" AutoGenera ...

  10. Asp.net中文本框全选的实现

    一.鼠标滑过textbox全选 前台: <asp:TextBox runat="server" onMouseOver="this.focus();this.sel ...