我有过滤(默认设置之一,不是自定义的)

有没有可能仅仅更改过滤的标题,而不写一个全新的定制过滤?

因为我唯一需要从过滤定制的就是它的标题.应该有一种方法可以在不重写整个过滤和查找的情况下做到这一点.

推荐答案

你需要有一个定制的过滤类,但是你实际上可以实现一个定制的过滤类工厂,只要你需要一个带有定制标题的过滤,你就可以在任何地方使用它:

from django.contrib import admin

def custom_titled_filter(title):
    class Wrapper(admin.FieldListFilter):
        def __new__(cls, *args, **kwargs):
            instance = admin.FieldListFilter.create(*args, **kwargs)
            instance.title = title
            return instance
    return Wrapper

在那之后,在你的ModelAdmin节课上:

list_filter = (
    ('fieldname', custom_titled_filter('My Custom Title')),
    'plain_field',
    ...
)

(请注意,定制过滤器不仅仅是一个字段名,而是一个(field_name, CustomFilterClass)的元组,您只需要从custom_titled_filter()工厂获得CustomFilterClass)

Django相关问答推荐

使用django直接计算geohash而不创建模型

如何在Django模型mixin字段定义中引用模型名称?

如果密码在Django中未被散列,则对其进行散列

ModuleNotFoundError:没有名为guardian.shortcuts的模块

Django 模型:如何查找自动生成的字段列表

使用 args 和选项编写自定义管理命令 - 所需字段说明

Django Rest Framework 中的 to_representation() 可以访问普通字段吗

什么时候在 django rest 框架序列化程序中调用创建和更新?

使用移动应用程序保护通信 [真实性、隐私和完整性]?

在 virtualenv Ubuntu 12.10 中使用 pip 安装 lxml 错误:command 'gcc' failed with exit status 4

Celery 和 Django 简单示例

Django ALLOWED_HOSTS IP 范围

Celery - 在一台服务器上运行不同的工作人员

如何向所有 Django 响应添加 HTTP 标头

保存前向 ModelForm 对象添加数据

Django 自定义用户邮箱帐户验证

具有 2 种语言的 Django 站点

AUTH_USER_MODEL 指的是尚未安装和创建的模型 .. AbstractUser 模型无法登录

BASE DIR 的绝对路径是什么?

django rest 框架:从序列化程序 validate() 方法设置字段级错误