将“昨天”字段添加到 Django 管理日期列表过滤器

TJB*_*TJB 4 django date admin filter

在我的 Django 应用程序的管理员中,对于我的模型之一,我允许选择按其“create_date”字段进行过滤。Django 默认为我提供了一些选项(今天、过去 7 天、本月、今年)。我也想简单地添加选择“昨天”的选项。我查看了关于同一问题的其他堆栈溢出问题,但他们都在寻找按日期范围搜索的能力,而我只想要一个预加载的选项。他们是否在管理类中配置此模型以覆盖其某些过滤器功能?

管理类

class User_LikeAdmin(admin.ModelAdmin):
    def fb_view_link(self, obj):
        if len(obj.user_facebook_link) > 2:
            return u"<a href='%s' target='_blank'>Facebook Page</a>" % obj.user_facebook_link
        else:
            return ""

    fb_view_link.short_description = ''
    fb_view_link.allow_tags = True


    list_display = ('vehicle', 'user', 'fb_view_link', 'dealer', 'create_date')
    list_filter = ('create_date', ('vehicle__dealer', custom_titled_filter('Dealer')))
    raw_id_fields = ('vehicle', 'user')

    actions = [export_csv]

    def dealer(self, obj):
        return obj.vehicle.dealer
Run Code Online (Sandbox Code Playgroud)

d27*_*nis 5

作为一种选择,您可以使用文档中提到的自定义过滤器类

class User_LikeAdmin(admin.ModelAdmin):
    list_filter = (('create_date', CustomDateFieldListFilter),)
Run Code Online (Sandbox Code Playgroud)

您可以扩展DateFieldListFilter

from django.contrib.admin.filters import DateFieldListFilter

class CustomDateFieldListFilter(DateFieldListFilter):
    # Your tweaks here
Run Code Online (Sandbox Code Playgroud)