0

我正在尝试做类似的事情:

{% for property in current_listing %}
    {% for property_image in property.property_images.all %}

    {% endfor %}
{% endfor %}

但我想要类似的东西:

{% for property in current_listing %}
    {% for property_image in property.property_images.**ORDER_BY('-order')[0]** %}

    {% endfor %}
{% endfor %}

我怎样才能做到这一点?

4

2 回答 2

3

如果我了解您想要什么,您可以尝试自定义模板过滤器

from django import template
register = template.Library()

@register.filter
def get_first_ordered_by(queryset, order):
    return queryset.order_by(order)[0]

然后在模板上:

{% load my_tags %}

{% with image=property.property_images.all|get_first_ordered_by:'-order' %}
    {{ image }}
{% endwith %}

请注意,您不能使用 {% for %} 因为结果get_first_ordered_by不可迭代。

于 2012-11-08T21:11:19.913 回答
0

您可以向模型的类定义添加一个方法,该方法返回您想要的查询,然后从您的模板中获取该方法。

于 2012-11-08T21:15:06.220 回答