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 に答える