Может кто-нибудь объяснить мне, почему следующие фильтры не работают на уровне месяца и дня? Кажется, что фильтрация по годам работает, но не две другие.Проблемы фильтрации поля datetime django по месяцам и дням
>>> 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
Уверены ли вы, что у вас есть клики с «созданными» от февраля? Я просто пробовал этот фильтр в одной из наших баз данных, и он отлично работал для меня. – user590028
Похоже, вы сделали .objects.all() и назначили его щелчкам, а затем пытались отфильтровать его. Вероятно, вы хотите сделать .objects.filter (....) –
Hoopdady