我对Django比较陌生,并且遇到尝试过滤日期的问题。我可以过滤除日期以外的所有其他值。这只是一个日期,但是我试图过滤给定范围内的所有寄存器,所以我添加了两个过滤器,如下所示:
class GamesFilter(FilterUserMixin):
[...]
date1 = django_filters.DateFilter(field_name='date1', method='filter_date', label='Start date')
date2 = django_filters.DateFilter(field_name='date2', method='filter_date', label='End date')
def filter_date(self,queryset,name,value):
if name == "date1":
queryset = queryset.filter(date__gte=value)
elif name == "date2":
queryset = queryset.filter(date__lte=value)
return queryset
class Meta:
model = Game
fields = ('team1','result','status','tourney','date1','date2')
在我的formhelpers.py中,我添加了:
class GamesFormHelper(FormHelper):
[...]
layout = Layout(
'team1','result','status','tourney','date1','date2',
Submit('filter','Filter',css_class='btn-default')
)
模型“ Game”仅具有参数“ date”,没有参数“ date1”和“ date2”,但是我找不到在不添加“ date1”和“ date2”在GamesFilter类的Meta和FormHelper中。
我想必须有一个更好的功能性方法来实现这一目标,但是我还没有找到任何可行的方法。我尝试使用DateFromToRangeFilter而不是DateFilter,但是它没有呈现我在html上添加的datepicker(并且仅出现一个文本框,这不允许我在范围内搜索)。