zoukankan      html  css  js  c++  java
  • Django制定模型的显示方式

    下面主要与管理站点的定制方式有关。对此,可编辑某某应用程序(这里本人以blog为例)的admin.py 文件,并对其予以修改,如下所示:

    from django.contrib import admin
    from .models impot Post
    
    @admin.register(Post)
    class PostAdmin(admin.ModelAdmin):
         list_display = ('title', 'slug', 'author', 'publish', 'status')

    这里,我们将通知 Django 管理站点,当前模型通过继承自ModelAdmin 的自定义类在管理站点中注册,在该类中,可包含管理站点中与模型显示方式及其交互方式相关的信息。相应的,list_display 属性可设置希望在管理对象列表页面中显示的模型字段;@admin.register() 装饰器执行的函数与我们已经替换的 admin.site.register()函数相同,并注册它所修饰的ModelAdmin类。

    下面利用更多选项定制管理模型,对应代码如下所示:

    @admin.register(Post)
    class PostAdmin(admin.ModelAdmin):
        list_display = ('title', 'slug', 'author', 'publish', 'status')
    
        list_filter = ('status', 'created', 'publish', 'author')  # 右侧栏
        search_fields = ('title', 'body')  # 搜索栏
        prepopulated_fields = {'slug': ('title',)}  # 根据输入的title字段预填充slug字段
        raw_id_fields = ('author',)  # author字段利用搜索微键予以展示
        date_hierarchy = 'publish'   # 导航链接
        ordering = ('status', 'publish')  # 按照 status 和 publish 排序

    返回至浏览器并重新加载帖子列表页面,对应结果如下:

    不难发现,在帖子列表页面中显示的字段实际上是 list_display 属性中指定的字段。列表页面包含了右侧栏,并通过 list_filter 属性中包含的字段对结果进行过滤。

    综上所述,仅需几行代码,即可定制模型在管理站点上的显示方式。另外,还存在多种方式可定制、扩展Django管理站点。

    通过上面几点,希望给各位一点启发,感谢各位的支持。

  • 相关阅读:
    [原] Code Color Scheme
    [转] 13款开源Java大数据工具,从理论到实践的剖析
    如何在Web页面上直接打开、编辑、创建Office文档 (转)
    自己用VS2008写的数据库操作包装类
    可以用ORACLE的临时表
    ASP.net中动态加载控件时一些问题的总结(转)
    Infragistics.WebUI.WebCombo的用法
    oracle中创建表的一种方法
    oracle中插入一个blob数据
    中国人正在上的四个当
  • 原文地址:https://www.cnblogs.com/xcbb/p/14267489.html
Copyright © 2011-2022 走看看