Ich versuche eine Django-Seite auszuspucken, die alle Einträge nach dem Jahr ihrer Erstellung auflistet. So zum Beispiel:Django: Filterung Datetime Feld von * nur * der Jahreswert?
2010:
Anmerkung 4
Anmerkung 5
Anmerkung 6
2009:
Anmerkung 1
Anmerkung 2
Note 3
es schwieriger erweist, als ich erwartet hätte. Das Modell, von dem kommt die Daten unter:
class Note(models.Model):
business = models.ForeignKey(Business)
note = models.TextField()
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
class Meta:
db_table = 'client_note'
@property
def note_year(self):
return self.created.strftime('%Y')
def __unicode__(self):
return '%s' % self.note
ich ein paar verschiedene Möglichkeiten versucht haben, scheinen aber in Hürden hinunter jeden Weg zu laufen. Ich vermute, dass eine effektive "Group by" -Methode den Trick (PostGres DB Backend) machen würde, aber ich kann keine Django-Funktionalität finden, die sie unterstützt. Ich habe versucht, einzelne Jahre aus der Datenbank zu bekommen, aber ich hatte Mühe, eine Möglichkeit zu finden, Datetime-Felder um den Jahreswert zu filtern. Schließlich habe ich versucht, die Eigenschaft note_year @ hinzuzufügen, aber da diese abgeleitet ist, kann ich diese Werte nicht filtern.
Irgendwelche Vorschläge für einen eleganten Weg, dies zu tun? Ich denke, es sollte ziemlich einfach sein, aber ich habe eine Huckuva-Zeit damit. Irgendwelche Ideen sehr geschätzt.
* lacht * Can‘ Ich glaube, es war so einfach. verbrachte Stunden auf der Suche nach dieser Art von Funktionalität. Danke vielmals. – PlankTon