filter by dayday返回空的JSON,而它应该为Sunday返回一个对象Django Rest Framew



这非常非常奇怪,我找不到合适的解决方案。我有一个工作模型,我正在尝试序列化。在我的视图集类中,我有一个函数,它根据一周中的哪一天过滤查询集。根据文档,工作日6是星期日,所以查询集中应该有一个Job。但是它返回一个空的JSON。这是应该与该查询匹配的对象:预期输出

def get_queryset(self):
day_query = self.request.GET.get('day')
if day_query != '' and day_query is not None:
queryset = Job.objects.filter(dt_start__week_day=day_query)
return queryset
else:
today = datetime.today().weekday()
queryset = Job.objects.filter(dt_start__week_day=today)
return queryset

这就是视图集函数:在此处输入图像描述

如果我为周日硬编码int 1,那么它就可以工作了,这相当伤脑筋,对此的一些见解将不胜感激!

__week_day查找[Django-doc]使用的值与.weekday()[pyton-doc]返回的值不同。事实上,如果我们查看__week_day查找的文档,我们会看到:

取一个整数值,表示从1(星期日(7(星期六(

.weekday()返回:

以整数形式返回一周中的哪一天,其中周一为0周日为6

因此,我们需要首先执行映射:

| mon tue wed thu fri sat sun
.weekday() |   0   1   2   3   4   5   6
__week_day |   2   3   4   5   6   7   1

我们可以用((x+1) % 7)+1执行映射,其中x.weekday():的结果

def get_queryset(self):
day_query = self.request.GET.get('day')
if not day_query:
today = datetime.today().weekday()
day_query =(today + 1) % 7 + 1
return Job.objects.filter(dt_start__week_day=day_query)

如果您也指定了day参数,这一点可能很重要,因为这当然取决于您如何解释该值。

相关内容

  • 没有找到相关文章

最新更新