【发布时间】:2009-08-15 17:24:32
【问题描述】:
所以这就是问题所在。想象 2 个模型:摄影师和照片。严格的规则是图像只能有 1 位摄影师,因此在 Photo 中有一个指向摄影师的 ForeignKey 链接。
class Photographer(models.Model):
name = models.CharField(max_length = 40)
class Photo(models.Model):
name = models.CharField(max_length = 40)
photographer = models.ForeignKey(Photographer)
现在我想在主页上展示最著名的摄影师,其中包含 3 张最受欢迎的照片。所以应该是这样的:
# views.py
def main(request):
photographers = ...
return render_to_response("main_page.html", {
"photographers": photographers
})
#main_page.html
{% for photo in photographers.photo_set.all()[:3] %}
{{ photo.name }}
{% endfor %}
但是 Django 模板系统不允许 all() 和 [:3]。那么最好的方法是什么?最明显的解决方案是动态创建对象(从摄影师和照片创建数组并将其传递给模板),但我认为这不是一个好方法。
请不要只参考 Django 手册,我仔细阅读了它,但找不到答案...
【问题讨论】:
-
我刚刚添加了一个答案,实际上或多或少是您在评论中所说的:-)
标签: django templates collections