管理面板中的 django choicefield 过滤器

2024-04-15

默认情况下 django 管理员list_filter提供型号选择中所有可用的过滤器。但除了那些我还想要一个过滤器,我们可以说它是“无”过滤器。

class Mymodel:
    char choice field (choices=(('1', 'txt1', '2', 'txt2')), null=True)

class MymodelAdmin(admin.ModelAdmin):
    ...
    list_filter = [..., choice_field, ...]
    ...

这将在管理面板中设置三个过滤器(右侧过滤器),All, 'txt1', 'txt2'。正确的? 如果没有从选择中分配值,我想要再添加一个过滤器“无”。

到目前为止我尝试过的..

class ChoiceFieldFilter(admin.filters.ChoicesFieldListFilter):

    def __init__(self, *args, **kwargs):
        super(ChoiceFieldFilter, self).__init__(*args, **kwargs)

        self.lookup_val = [('', 'None')]

    def queryset(self, request, queryset):
        print self.lookup_val
        print  self.field.flatchoices
        if self.lookup_val == '':
            return queryset.filter(choice_field='')
        else:
            return queryset.filter(choice_field=self.lookup_val)

    def choices(self, cl):
        pass

然后在管理课上

list_filter = [..., ('choice_field', ChoiceFieldFilter), ...]

但它不起作用,我看不到None在 Django 管理中过滤


您不必创建自定义列表过滤器。只需使用 django 的 AllValuesFieldListFilter

from django.contrib.admin.filters import AllValuesFieldListFilter
...
list_filter = [..., ('choice_field', AllValuesFieldListFilter)]
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

管理面板中的 django choicefield 过滤器 的相关文章

随机推荐

  • 加载实体而不将其绑定到视图

    在控制器中 Detail controller js 我想访问尚未绑定到控件的 OData 实体 如果输入0001 of my BananaSet绑定到视图 我可以通过访问原始数据 this getView getModel getProp
  • 使用 Codable 和 CodableFirebase 快速解析 Firebase 值时获取 nil

    我正在使用 Firebase 实时数据库 在 swift 和外部库 CodableFirebase 中使用可编码方法 我已经创建了模型结构 但是当我尝试使用模型结构解析值 因为我正在获取所有值 时 它给了我零 我的数据库有一些键 我可能无法
  • Web API 属性路由和验证 - 可能吗?

    我正在尝试将 Web API 中基于属性的路由与模型验证结合起来 我根本无法让它按照我的预期工作 class MyRequestModel DefaultValue DefaultView public string viewName ge
  • 未捕获(承诺中):错误:无法读取未定义的属性

    组件使用参数将用户从服务中取出 Component selector users providers UserService template p user id p export class UserPageComponent imple
  • 为什么Xcode自动创建带下划线的变量?

    为什么在最新版本的 Xcode dp 4 中声明的变量是retain nonatomic是否在变量名前使用下划线 这会创建某种类型安全吗 例如 我创建一个属性 property retain nonatomic IBOutlet UILab
  • 如何在本地进行 Facebook Messenger Bot 开发?

    设置 webhooks 时 它会说Secure URL是必须的 我在用ngrok https ngrok com 隧道本地主机地址 这里有一个例子 https github com wit ai node wit https github
  • 如果 Objective C 是 C 的严格超集,那么为什么它不能编译呢?

    考虑以下源文件 它是 至少应该是 有效的 C void id 我正在尝试编译它gcc c test m 但我收到以下错误 test m 1 error id redeclared as different kind of symbol
  • 如何从R中的不同函数将数据依次写入csv文件中?

    我有一个 CSV 文件 我想根据我执行的功能将数据写入另一个 CSV 文件 例如 Data csv Identity State City BusinessName BusinessNeed 12 California Los Angele
  • 通过 angular-cli 生成的角度组件的自定义项目级模板

    如何将自定义角度组件原理图添加到现有项目 我想要例如my page将复制现有的组件模板 node modules schematics angular component 文件 但带有编辑过的模板 我希望它可以通过以下方式实现angular
  • UnionBy Linq 实现

    我需要 Union 的实现来比较对象的属性 而不是对象本身 我想出了以下几点 public static IEnumerable
  • 实时清除数据容器的内容

    My problem is best explained by the architecture below 基本上 我必须清除NSMutableData实时对象 或任何其他对象 即我无法阻止其包含线程 有没有办法 API 来做到这一点 u
  • 32feet.net 如何在 C# 中异步发现附近的蓝牙设备

    我正在尝试使用32英尺 NET http 32feet codeplex comC 应用程序中的蓝牙库用于检测附近的设备 我的小应用程序的目的是通过人们手机的蓝牙功能让电脑知道谁在房间里 执行此类操作的最佳方法是让我想要 跟踪 的设备连接一
  • 将网络摄像头从浏览器流式传输到 RTMP 服务器

    我正在尝试将一些内容从浏览器的网络摄像头实现流式传输到随机 RTMP 服务器 我让它工作到每 2 秒将 WEBM 我相信是 VP8 编码的电影片段发送到我的服务器的部分 但棘手的部分是从该部分将其发送到 RTMP 服务器 对 FFMPEG
  • 如何简单地解析没有指定年份的日期?

    我有一个工具 它似乎可以给我日期 但没有指定我需要转换的年份 并且我正在使用 Java 来完成任务 实际上是 Groovy 但在本例中足够接近 示例日期是 13 Dec 12 00 00 它应该指的是 12 13 2011 因为年份未指定
  • HTML 俄语

    我必须设计一个俄语版本的网站 我从翻译那里得到文本 我把它复制到Dreamweaver的代码中 但它不起作用 我有平常的头 我应该怎么办 您应该将文件的编码更改为 UTF 8 您可以执行此过程 当您Save As文件在记事本中或者您可以使用
  • OpenSSL 上的 EVP_DecryptFinal_ex 错误

    我正在使用 OpenSSL EVP 例程使用 AES 128 cbc 模式进行解密 我使用 NIST 站点指定的测试向量来测试我的程序 该程序似乎在 EVP DecryptFinal ex 例程处失败 谁能告诉我有什么问题吗 另外 我如何在
  • 处理 Swift 2 中异步闭包错误的最佳方法?

    我使用了大量的异步网络请求 顺便说一句 iOS 中的任何网络请求都需要异步 并且我正在寻找更好的方法来处理来自 Apple 的错误dataTaskWithRequest哪个不支持throws 我有这样的代码 func sendRequest
  • 创建名称为“securityConfig”的 bean 时出错:自动装配依赖项注入失败

    我正在尝试结合 Java config 和 xml config 进行 Spring 安全身份验证 但我收到一个错误 创建名称为 securityConfig 的 bean 时出错 自动装配依赖项注入失败 我的代码似乎有什么问题 一直在谷歌
  • 无法在 Ubuntu 上的 PyCharm 上启动终端

    我想运行一段代码 为此 我在我的 Ubuntu 机器上安装了 PyCharm 现在 当我打开 PyCharm 应用程序并尝试打开终端时 它会抛出错误并且不会打开终端 java io IOException Exec tty错误 未知的pyc
  • 管理面板中的 django choicefield 过滤器

    默认情况下 django 管理员list filter提供型号选择中所有可用的过滤器 但除了那些我还想要一个过滤器 我们可以说它是 无 过滤器 class Mymodel char choice field choices 1 txt1 2