首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Django admin中为外键过滤器排序list_filter标签?

在Django admin中,可以通过自定义过滤器来为外键字段的list_filter标签进行排序。以下是实现该功能的步骤:

  1. 创建一个自定义过滤器类,继承自admin.SimpleListFilter类。例如,我们创建一个名为CustomFilter的过滤器类。
代码语言:python
复制
from django.contrib import admin
from django.utils.translation import gettext_lazy as _

class CustomFilter(admin.SimpleListFilter):
    title = _('Custom Filter')  # 过滤器的标题
    parameter_name = 'custom_filter'  # 过滤器的参数名

    def lookups(self, request, model_admin):
        # 返回过滤器的选项,格式为(过滤器值,过滤器显示名称)
        return (
            ('option1', _('Option 1')),
            ('option2', _('Option 2')),
        )

    def queryset(self, request, queryset):
        # 根据过滤器的值对查询集进行过滤
        if self.value() == 'option1':
            return queryset.filter(foreign_key_field__isnull=True)
        if self.value() == 'option2':
            return queryset.filter(foreign_key_field__isnull=False)
  1. 在admin.py文件中注册模型,并将自定义过滤器类添加到list_filter标签中。
代码语言:python
复制
from django.contrib import admin
from .models import YourModel

class YourModelAdmin(admin.ModelAdmin):
    list_filter = (CustomFilter,)

admin.site.register(YourModel, YourModelAdmin)

现在,在Django admin中,你将看到一个名为"Custom Filter"的过滤器,其中包含"Option 1"和"Option 2"两个选项。选择不同的选项将根据外键字段的值对列表进行过滤。

关于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,建议您参考腾讯云官方文档或咨询腾讯云的技术支持团队,以获取与Django admin相关的产品和服务信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django3.0新鲜出炉!全面解读新特性,ASGI真香实锤,不来了解一下?

写这篇文章完全是机缘巧合,想想已经好长时间没有关注过Django了,虽然Django一直霸占着Python Web开发界的王座,但是由于各种原因自从使用Asyncio以来一直使用Aiohttp这个框架。碰巧因为之前写了几天的《2019逆向复习系列》,脑子里充斥着“逆向”,“逆向”,“逆向”。今天想换换思路写点其他的文章,偶然间看到前两天Django 3.0版本推出,简单看了下Django 3.0的新特性,看到Django 3.0正式版本终于支持ASGI了,内心真是一阵澎湃,当时放弃Django去选择其他的异步框架也是因为它不支持异步,现在它终于完全拥抱异步了,我也就可以重拾Django,尝尝鲜啦!

01
领券