Django 管理员:有条件地设置 list_display

2024-03-13

是否有任何管理模型方法,如 get_list_display() 或某种方式,我可以有一些条件来设置不同的 list_display 值?

class FooAdmin (model.ModelAdmin):
    # ...
    def get_list_display ():
        if some_cond:
            return ('field', 'tuple',)
        return ('other', 'field', 'tuple',)

The ModelAdmin类有一个方法叫做get_list_display它以 request 作为参数,默认返回list_display类的财产。

所以你可以这样做:

class ShowEFilter(SimpleListFilter):
    """ A dummy filter which just adds a filter option to show the E column,
        but doesn't modify the queryset.
    """
    title = _("Show E column")
    parameter_name = "show_e"

    def lookups(self, request, model_admin):
        return [
            ("yes", "Yes"),
        ]

    def queryset(self, request, queryset):
        return queryset

class SomeModelAdmin(admin.ModelAdmin):

    list_display = (
      "a",
      "b",
      "c",
      "d",
      "e"
    )
    list_filter = (
        ShowEFilter,
    )


    def get_list_display(self, request):
        """ Removes the E column unless "Yes" has been selected in the 
            dummy filter.
        """
        list_display = list(self.list_display)
        if request.GET.get("show_e", "no") != "yes":
            list_display.remove("e")

        return list_display
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 管理员:有条件地设置 list_display 的相关文章

随机推荐

  • AWS ElasticSearchService index_create_block_exception

    在增加集群大小并看到 index create block exception 后 我尝试在 AWS ElasticSearch 集群中创建新索引 我该如何纠正这个问题 我尝试搜索但没有得到确切的答案 谢谢 curl XPUT http
  • 间隔列表中范围不重叠间隔的最大总和

    有人问我这样的问题 您将获得一个间隔列表 您必须设计一种算法来找到不重叠间隔的序列 以使间隔范围的总和最大 例如 如果给定的间隔是 06 00 08 30 09 00 11 00 08 00 09 00 09 00 11 30 10 30
  • C# 快速/高效地压缩大量数据块

    我有大约 270k 个数据块对 每对由一个 32KiB 和一个 16KiB 块组成 当我将它们保存到一个文件时 我当然会得到一个非常大的文件 但数据很容易被压缩 用WinRAR对5 48GiB的文件进行强压缩后 得到的文件大小为37 4Mi
  • 如何在不破坏标签的情况下截断html?

    如何确保所有 html 标签都已关闭 出现问题是因为我想为每篇文章创建某种摘录 例如有人写了这样一篇文章 Hi everyone I m just an article and I have few strong tags strong i
  • MYSQL Docker 容器给出“未知数据库”错误

    我正在使用带有 docker compose 的 MySQL docker 容器 效果很好 唯一的问题是我收到错误unknown database database name 我每天第一次运行它 Windows启动后 之后 如果我停止它并重
  • IIS 5.1 中的 WCF 作为纯文本文件

    我刚刚在我的开发环境中设置了一个简单的 WCF 服务 到目前为止 对于 SOAP 和 JSONP 请求 端点工作正常 我已继续将此解决方案部署到托管在 IIS 5 1 上的临时服务器 我知道 但请耐心等待 并且 svc文件突然不再工作了 并
  • System.Uri 实现 ISerialized,但给出错误? [复制]

    这个问题在这里已经有答案了 可能的重复 如何 xml 序列化 uri https stackoverflow com questions 1036492 how to xml serialize a uri 据我所知Uri实现 ISeria
  • 添加迁移以在实体框架 6 中创建数据库时出错,找不到方法 CoreTypeMappingParameters

    我正在尝试运行添加迁移以在本地计算机上创建数据库 在最后几秒钟我收到此错误 找不到方法 Void CoreTypeMappingParameters ctor System Type Microsoft EntityFrameworkCor
  • IntelliJ IDEA Community Edition 可以以某种方式支持 Ultimate 的功能吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我知道社区版不支持 Ultimate 的某些功能 但我想知道无论如何都没有办法让这些功能运行 例如企业开发 如Tomcat Glassfi
  • 在 Python 中打开 .h5 文件

    我正在尝试用 Python 读取 h5 文件 该文件可以在以下位置找到这个链接 https github com yhilpisch py4fi tree master ipython source它被称为 vstoxx data 3103
  • 如何测量来自客户端的 Websocket 背压或网络缓冲区

    我正在使用 ws Node js 包创建一个到每秒发送数百条消息的服务器的简单 WebSocket 客户端连接 即使使用仅 console logs 传入消息的简单 onMessage 处理程序 客户端也无法跟上 我的理解是 这被称为背压
  • 在 C# 中创建动态扩展方法?

    是否可以解决此错误 public static class LayoutExtensions
  • 通过鼠标悬停定位工具提示

    我正在使用以下链接中找到的代码 https www d3 graph gallery com graph heatmap tooltip html https www d3 graph gallery com graph heatmap t
  • TemplateHaskell 和 IO

    如果 TH 的功能有副作用 是否有任何适当的方法可以确保它们的安全 比如说 我想要一个在编译时调用 git 并生成版本字符串的函数 LANGUAGE TemplateHaskell module Qq where import System
  • 在导航 goBack 上发送道具

    基本上我有三个屏幕 第一个是堆栈导航器 const stackNav createStackNavigator Main screen MainScreen navigationOptions navigation gt header nu
  • mvc c# jquery 如果记录存在则更新视图的一部分,否则更新表

    我正在寻求有关如何实现此功能的建议 像往常一样 我有一个带有编辑框的页面 用户在其中提交带有输入的页面 其唯一目的是将其保存到记录中 但是我想要做的 为了避免重复 是首先在表中搜索任何相似的记录 如果有任何相似的记录 我想将其返回给用户 在
  • MVVM 实现的问题:对所选项目的更改传播到列表,不希望这样

    所以我遇到了这个问题 希望你能帮忙解决 我正在使用 MVVM Light 作为框架编写 WPF 应用程序 在这种情况下 我有一个项目列表 并且 SelectedItem 绑定到用户可以在其中编辑项目的详细信息视图 在本例中 有一个 保存 按
  • jQuery 模糊事件未触发

    我是 jQuery 新手 所以我打赌我做错了什么 但我不明白为什么这个事件没有触发 我有一个 textarea 元素 由于正在接受数据的应用程序 需要在提交之前删除所有分隔符 我试图在文本区域失去焦点时进行清理 因此采用模糊方法 不幸的是
  • 读取 csv 时区错误

    经过几个小时的谷歌搜索后 我没有找到解决这个问题的方法 基本上当我跑步时read csv some file csv 函数来自readr包我收到以下错误 错误 未知 TZ UTC 并且 csv 未被读取 我读取 CSV 的唯一方法是这样 r
  • Django 管理员:有条件地设置 list_display

    是否有任何管理模型方法 如 get list display 或某种方式 我可以有一些条件来设置不同的 list display 值 class FooAdmin model ModelAdmin def get list display