我已经构建了一个子类 Django 的 ListView 的视图。目前它工作正常。它提供了来自我的 Artwork 类的对象列表,我可以在模板中对其进行迭代。
但是,我现在包含了一个(不是必需的)外键(系列),并且我想在显示 Artwork 对象时按系列对其进行分组。我还想按日期对它们进行排序,同时在其中穿插任何带有 series=None 的 Artwork 对象(也根据日期)。
像这样:
- 艺术品(12/2013)(系列=无)
- 艺术品(12/2013) 艺术品(12/2013) 艺术品(11/2013) (series='series1' 11/2013)
- 艺术品(10/2013)(系列=无)
- 艺术品(12/2013) 艺术品(12/2013) 艺术品(11/2013) (series='series2' 09/2013)
我的模型如下所示:
class Series(models.Model):
title = models.CharField(max_length=200, unique=True)
date = models.DateTimeField(default=timezone.now(), editable=False)
def __unicode__(self):
return self.title
class Artwork(models.Model):
title = models.CharField(max_length=200, unique=True)
series = models.ForeignKey(Series, blank=True, null=True, on_delete=models.SET_NULL)
date = models.DateTimeField(default=timezone.now(), editable=False)
image = models.ImageField(upload_to='artwork_images/%Y/%m/')
def __unicode__(self):
return self.title
我猜如果我的视图是为模板提供嵌套列表之类的东西,我可以以某种方式完成我想要的。ListView 有可能吗?或者我应该构建一个基于函数的视图?
如果这似乎是一个幼稚的问题,我们深表歉意。我是 Django/Python 世界(和 Stackoverflow!)的新手。任何意见或建议将不胜感激。