Я пытаюсь выплюнуть страницу django, в которой перечислены все записи по году их создания. Так, например:
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, которая его поддерживает. Я пытался получить отдельные годы из базы данных, но изо всех сил пытался найти способ фильтрации полей даты и времени только по значению года. Наконец, я попытался добавить note_year @property, но, поскольку он является производным, я не могу отфильтровать эти значения.
Есть предложения для элегантного способа сделать это? Я думаю, это должно быть довольно просто, но я провожу время с этим. Любые идеи высоко ценится.