这非常非常奇怪,我找不到合适的解决方案。我有一个工作模型,我正在尝试序列化。在我的视图集类中,我有一个函数,它根据一周中的哪一天过滤查询集。根据文档,工作日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
参数,这一点可能很重要,因为这当然取决于您如何解释该值。