【发布时间】:2010-06-08 12:57:37
【问题描述】:
我试图吐出一个 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
我尝试了几种不同的方法,但似乎在每条路径上都遇到了障碍。我猜想一个有效的“分组依据”方法可以解决问题(PostGres DB 后端),但我似乎找不到任何支持它的 Django 功能。我尝试从数据库中获取单个年份,但我很难找到一种仅通过年份值过滤日期时间字段的方法。最后,我尝试添加 note_year @property,但因为它是派生的,所以我无法过滤这些值。
有什么优雅的方法可以做到这一点吗?我认为这应该很简单,但我玩得很开心。任何想法都非常感谢。
【问题讨论】:
标签: python django django-models group-by django-queryset