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

np8igboo  于 2023-11-20  发布在  Go
关注(0)|答案(2)|浏览(189)

如何在Django管理过滤器中获取日期选择器?
使用简单的list_filter将得到我的文本选择:任何日期,最近7天,最近几个月等,但我想要简单的日期选择器,所以我可以选择一个日期.我发现django-admin-daterange但我不需要范围-只是一个日期..

llycmphe

llycmphe1#

我已经做了以下添加日期过滤器:-

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/

abithluo

abithluo2#

.但我不需要范围-只是一个日期..
如果你只需要一个日期,你可以使用ModelAdmin.date_hierarchy
在文档中:
date_hierarchy设置为模型中DateFieldDateTimeField的名称,更改列表页面将包含基于日期的该字段的深入导航。
举例来说:

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

字符串
结果如下所示:
x1c 0d1x的数据
这允许您通过选择 year -> month -> day“钻取”到单个日期。
它不是一个像<input type="date">那样的真正的笔记本式的“日期选择器”,但我认为它非常方便。
对于那些 * 确实 * 需要通过日期 * 范围 * 进行过滤的人,请查看here

相关问题