Vit*_*aly 4 django collections templates
所以这就是问题所在.想象一下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)
Run Code Online (Sandbox Code Playgroud)
现在我想在主页上展示最着名的摄影师,他的照片最受欢迎.所以它应该是这样的:
# 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 %}
Run Code Online (Sandbox Code Playgroud)
但是Django模板系统不允许all()和[:3].那么最好的方法是什么?最明显的解决方案是动态创建对象(从摄影师和照片创建数组并将其传递给模板),但我不认为这是一个好方法.
请不要只是把我推荐给Django手册,我仔细阅读,但找不到答案......
尝试使用切片过滤器:
{% for photo in photographers.photo_set.all|slice:":3" %}
Run Code Online (Sandbox Code Playgroud)
请注意,.all不需要显式调用.
| 归档时间: |
|
| 查看次数: |
3619 次 |
| 最近记录: |