所以问题就出在这里。想象两种模式:摄影师和照片。严格的规则是,图片只能有1位摄影师,所以在Photo中有摄影师的ForeignKey链接。现在ForeignKey和Django Template
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的手册,我仔细阅读,但无法找到答案...
我刚刚添加了一个答案,其实或多或少是你在评论中所说的:-) – 2009-08-15 18:08:02