Я пытаюсь выплюнуть страницу django, в которой перечислены все записи за год, когда они были созданы. Так, например:Django: Фильтрация поля datetime * только * значение года?
2010:
Примечание 4
Примечание 5
Примечание 6
2009:
Примечание 1
Примечание 2
Примечание 3
Это оказалось более трудным, чем я ожидал бы. Модель, с которой приходит данные ниже:
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
Я попробовал несколько различных способов, но, кажется, бежать в препятствия вниз каждый путь. Я предполагаю, что эффективный метод «group by» будет делать трюк (PostGres DB Backend), но я не могу найти никакой функциональности Django, которая ее поддерживает. Я пытался получить отдельные годы из базы данных, но я изо всех сил пытался найти способ фильтрации полей datetime только за год. Наконец, я попытался добавить note_year @property, но поскольку он получен, я не могу отфильтровать эти значения.
Любые предложения по элегантному способу сделать это? Я полагаю, что это должно быть довольно просто, но у меня есть время с heckuva. Любые идеи очень ценятся.
* смеется * Can» Я считаю, что это было легко; потраченные часы, ищущие такую функциональность. Большое спасибо. – PlankTon