如果日期数据类型或数据类型是文本或字符串,我们可以对日期应用日期范围过滤器吗?

问题描述 投票:0回答:1
models-
`class RocCharge(models.Model):`
`charge_id = models.IntegerField(blank=True, null=True)`
`chname = models.CharField(max_length=100, blank=True, null=True, db_index=True)`
`date_of_creation = models.TextField(default=date.today)`

views-
`from_date = request.GET.get('fromdate')`
`to_date = request.GET.get('Todate')`
`if from_date and to_date:
    combined_data = combined_data.filter(date_of_creation__gte=from_date, date_of_creation__lte=to_date)`

我在 mysql 以及文本格式模型中的创建日期,但我想在不更改日期数据类型的情况下执行日期范围过滤器,我在 mysql 中的日期类似于 2019 年 12 月 21 日

javascript python-3.x django django-models django-views
1个回答
0
投票
# ...

from_date_str = request.GET.get('fromdate')
to_date_str = request.GET.get('Todate')

if from_date_str and to_date_str:
    # Convert date strings to datetime objects using a consistent format
    date_format = "%d-%m-%Y"
    from_date = datetime.strptime(from_date_str, date_format)
    to_date = datetime.strptime(to_date_str, date_format)

    # Filter based on the datetime range
    combined_data = combined_data.filter(date_of_creation__range=(from_date, to_date))

这涉及使用 strptime 将日期字符串从请求参数转换为日期时间对象,然后使用 __range 查找根据日期范围进行过滤。这应该适用于您当前的基于文本的日期。确保日期格式正确。

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