在 django admin 中使用日期选择器作为过滤器

问题描述 投票:0回答:2

如何在 Django 管理过滤器中获取日期选择器?

使用简单的list_filter将让我选择文本:任何日期,最近7天,最近几个月等。但我想要简单的日期选择器,所以我只能选择一个日期...我找到了django-admin-daterange,但我不需要范围 - 只有一个日期..

python django django-admin
2个回答
0
投票

我已执行以下操作来添加日期过滤器:-

pip install django-admin-rangefilter

然后将其添加到已安装的应用程序中

'rangefilter',

然后在admin.py文件中

from django.contrib import admin
from .models import *
from rangefilter.filter import DateRangeFilter

class ProfileAdmin(admin.ModelAdmin):
  list_display = ("id", "full_name", "created_at", "role", "is_verified")
  list_filter = (('created_at', DateRangeFilter),  "role")

  admin.site.register(Profile, ProfileAdmin)

这将在过滤器框中创建一个开始和结束日期选择器。您可以选择一个日期两个文件。它将过滤单个日期。 我在解决这个问题时参考了这个博客:-https://www.dothedev.com/blog/2020/04/05/django-admin-list_filter/


0
投票

...但我不需要范围 - 只需要一次约会..

如果您只需要一次约会,您可以使用

ModelAdmin.date_hierarchy
:

date_hierarchy
设置为模型中
DateField
DateTimeField
的名称,更改列表页面将包含该字段基于日期的向下钻取导航。

例如:

@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
    date_hierarchy = 'my_date_field'

看起来像这样:

这允许您按年 -> 月 -> 日进行深入分析。

© www.soinside.com 2019 - 2024. All rights reserved.