Kann mir jemand erklären, warum die folgenden Filter nicht auf der Ebene des Monats und des Tages funktionieren? Filtern nach Jahr scheint zu funktionieren, aber nicht die anderen beiden.Probleme beim Filtern von django datetime Feld nach Monat und Tag
>>> 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)
[]
Ein kurzes Update zu zeigen, dass ich das gleiche Verhalten bin immer vor dem Erstellen und den Umgang mit einem 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
Hier ist mehr zu denken:
>>> clicks = PreviewClick.objects.all()
>>> counter = 0
>>> for click in clicks:
... if click.created.month == 2:
... counter += 1
...
>>> counter
35
Wie haben Sie Klicks erstellt? – Hoopdady
Sind Sie sicher, dass Sie Klicks mit "erstellt" vom Februar haben? Ich habe gerade diesen Filter in einer unserer Datenbanken ausprobiert, und es hat gut für mich funktioniert. – user590028
Es sieht so aus, als ob Sie .objects.all() erstellt und dem Klick zugewiesen haben und dann versuchen, es zu filtern. Wahrscheinlich möchten Sie .Objects.Filter (....) –
Hoopdady