有人可以向我解释为什么以下过滤器不能在月和日级别工作?按年过滤似乎有效,但不是其他两种。根据月份和日期过滤django datetime字段的问题
>>> clicks.count()
36
>>> date = clicks[0].created
>>> date.month
2
>>> date.year
2014
>>> date.day
1
>>> clicks.filter(created__month=2)
[]
>>> clicks.filter(created__month=02)
[]
>>> clicks.filter(created__month='02')
[]
>>> clicks.filter(created__month='2')
[]
>>> clicks.filter(created__month=date.month)
[]
>>> clicks.filter(created__day=date.day)
[]
快速更新,以证明我创造和处理一个QuerySet之前获得相同的行为:
>>> clicks = PreviewClick.objects.filter(created__month = 2)
>>> clicks.count()
0
>>> clicks = PreviewClick.objects.filter(created__month = 02)
>>> clicks.count()
0
>>> clicks = PreviewClick.objects.filter(created__month = '02')
>>> clicks.count()
0
>>> clicks = PreviewClick.objects.filter(created__month = '2')
>>> clicks.count()
0
这里有更多的深思:
>>> clicks = PreviewClick.objects.all()
>>> counter = 0
>>> for click in clicks:
... if click.created.month == 2:
... counter += 1
...
>>> counter
35
你是如何创建点击的? – Hoopdady
你确定你点击了'创建'日期为2月?我只是在我们的一个数据库上试过这个过滤器,它对我来说工作得很好。 – user590028
它看起来像你做 .objects.all(),并指定它点击,然后试图过滤它。您可能想要做 .objects.filter(....) –
Hoopdady