在 Django 模板中获取查询集的第一个对象
Get first object of query-set in Django templates
我知道 Django 将数据和表示分开,因此 Object.filter(id=value).all()
无法通过模板实现。
我很难理解的是实现相同类型最终结果的最佳实践。
例如,在我的一个应用程序中,我有产品数据,其中包括一些与图像的一对多关系。也就是说,一个产品可能有很多张图片。
在我的 AppName/views.py
文件中,我有以下内容:
def index(request):
response = render_to_response('AppName/index.html', context={
'products': Product.objects.all(),
})
return response
在我的 AppName/templates/AppName/index.html
文件中,有一个部分包含以下内容:
{% for product in products %}
<li>{{ product.name }}: ${{ product.price }}</li>
{% endfor %}
我希望能够做的是在混音中加入相当于 {{product.images.first().url}}
的内容。
这方面的典型方法是什么?
多个选项,taken from here:
1-(旧方法):
{% with entry.image_set.all|first as image %}
<img src="{{ image.get_absolute_url }}">
{% endwith %}
2-从 Django 1.6ish 开始
<img src="{{ entry.image_set.first.get_absolute_url }}">
我知道 Django 将数据和表示分开,因此 Object.filter(id=value).all()
无法通过模板实现。
我很难理解的是实现相同类型最终结果的最佳实践。
例如,在我的一个应用程序中,我有产品数据,其中包括一些与图像的一对多关系。也就是说,一个产品可能有很多张图片。
在我的 AppName/views.py
文件中,我有以下内容:
def index(request):
response = render_to_response('AppName/index.html', context={
'products': Product.objects.all(),
})
return response
在我的 AppName/templates/AppName/index.html
文件中,有一个部分包含以下内容:
{% for product in products %}
<li>{{ product.name }}: ${{ product.price }}</li>
{% endfor %}
我希望能够做的是在混音中加入相当于 {{product.images.first().url}}
的内容。
这方面的典型方法是什么?
多个选项,taken from here:
1-(旧方法):
{% with entry.image_set.all|first as image %}
<img src="{{ image.get_absolute_url }}">
{% endwith %}
2-从 Django 1.6ish 开始
<img src="{{ entry.image_set.first.get_absolute_url }}">