Условный рендеринг (разных секций) в Django Template

Я написал этот код (внутри представления) для генерации некоторых флагов

    # when to show bidding form?
    #  - current user is logged in
    #  - listing is active
    #  - listing isn't created by current user
    show_bidding_form = (
        request.user.is_authenticated
        and listing.is_active
        and listing.owner != request.user
    )

    # when to show #bids and close listing form?
    #  - current user is logged in
    #  - listing is active
    #  - current user is listing owner
    show_bids_count = (
        request.user.is_authenticated
        and listing.is_active
        and listing.owner == request.user
    )

управление, показывающее различные секции (внутри шаблона)

{% if show_bidding_form %}
    <!-- some div ->>

{% elif can_close_listing %}
    <!-- some other div -->
{% endif %}

Мой вопрос в следующем: это лучший способ сделать такую фильтрацию? или есть какой-то другой "официальный" способ.

Я думаю о том, чтобы переместить код и разметку в тег включения. Но тогда представление, которое изначально содержало код, будет пустым, и я не буду иметь представления о том, что происходит внутри шаблона, который он рендерит..

Вернуться на верх