Wagtail как добавить контекст шаблона льгот в представление каталога?

Я добавил скидку в productdetailview, добавив контекст и отредактировав шаблон.

Все прекрасно работает в Detailview, но контекст не передается в просмотр каталога, поэтому он не отображается в browse.

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

у кого-нибудь есть идеи?

просмотр деталей работы

каталог views.py

Benefit = get_model('offer', 'Benefit')

def get_discounts(self):
    try:
        discounts = Benefit.objects.get(id=self.object.id )
    except:
        discounts = ''
    return discounts

def get_context_data(self, **kwargs):
    ctx = super().get_context_data(**kwargs)
    ctx['alert_form'] = self.get_alert_form()
    ctx['has_active_alert'] = self.get_alert_status()
    ctx['benefits'] = self.get_discounts()
    return ctx

stock_record.html

<!--Added discount price-->
{% if benefits %}
<mark class="sale">Product in Sale!</mark>
{% with type=benefits.type %}
{% if type == 'Percentage' %} 
<p> Price after {{benefits.value}}% discount </p>
<p class="price_color">{{ session.price.excl_tax |percent:benefits.value|currency:session.price.currency }}</p>
{% elif type == 'Absolute' %}
<p> Price after {{benefits.value}}{{session.price.currency }} discount </p>
<p class="price_color">{{ session.price.excl_tax |subtract:benefits.value|currency:session.price.currency }}</p>
{% endif %}
{% endwith %}
{% endif %}

Проблема заключается в вашем self.object.id. Как видно из трассировки, которая выбрасывает исключение DoesNotExist:

Exception Value: Benefit matching query does not exist.

Я не уверен, откуда берется этот self.object, но, скорее всего, это и есть виновник. Чтобы проверить это, вы можете дать вашему запросу Benefits ID, который действительно существует в вашей БД, и он должен работать.

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