Python 如何从django模板中的相关模型中获取单个对象
我有两个模型(项目和相册)。 相册具有指向该项的外键 像这样Python 如何从django模板中的相关模型中获取单个对象,python,django,Python,Django,我有两个模型(项目和相册)。 相册具有指向该项的外键 像这样 class Item(models.Model): name = models.CharField(max_length=50) price = models.IntegerField() 及 在我的模板中 {% for item in item_tags %} <div class="item-dock">
class Item(models.Model):
name = models.CharField(max_length=50)
price = models.IntegerField()
及
在我的模板中
{% for item in item_tags %}
<div class="item-dock">
<a href="{{item.name}}">
<img src="{{item.album_set.photo.filter(default=True)}}" class="img-responsive">
<p class="item-name text-center">{{item.name|capfirst}}</p>
</a>
{item_tags%}
现在真正的问题是。假设对相关模型的查询总是返回queryset。如何从相册模型中为模板中的项目检索单个对象(在本例中,是来自此查询集中的单个照片,其中“default=True”)
我了解queryset和相关经理
如果您有任何帮助和建议,我们将不胜感激只要查询第一个元素就可以了
# something like this in your template
{% item.album_set.first.photo %}
您可以为此使用自定义模板筛选器: 有关创建和使用自定义模板标记和过滤器的详细信息,请参见: 您可以在模板中使用它,如下所示:
{{ item.album_set|default_image }}
请记住,在使用过滤器之前,您需要{%load your_custom_template_tags%}谢谢。这工作!我需要深入研究医生
from django import template
register = template.Library()
def default_image(queryset):
return queryset.get(default=True).photo.url
register.filter('default_image', default_image)
{{ item.album_set|default_image }}