首页 > 解决方案 > 在两个模型字段范围内搜索日期范围

问题描述

我正在尝试使用 django-filters dateFromToRangeFilter 来确定开始和结束日期是否在模型中有两个字段的任何范围内:

class dates(models.Model):
date_from = models.DateField()
date_to = models.DateField() 

我不知道从哪里开始,因为此过滤器的正常行为是搜索一个模型日期字段是否在过滤器的 start_date 和 end_date 范围内。

我正在寻找解决方案,以确定两个模型日期字段是否在用户在表单中提供的 o 范围内。(任何重叠都可以)

编辑:

好的,我通过手动日期表单字段和过滤 django-filter qs 来制作一些快捷方式:

    get_query = request.GET.copy()
    if 'urlop_after' in get_query:
        q_start = get_query['urlop_after']
        cont.update({'urlop_after': get_query['urlop_after']})
    if 'urlop_before' in get_query:
        q_end = get_query['urlop_before']
        cont.update({'urlop_before': get_query['urlop_before']})
    if q_start is None:
        q_start = timezone.now() - timedelta(days=700)
    if q_end is None:
        q_end = timezone.now() + timedelta(days=700)

    asa = f.qs.filter(data_end__gte=q_start, data_start__lte=q_end)

我还在寻找 django-filters 是否可以做到这一点

标签: djangodjango-filter

解决方案


推荐阅读