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, который действительно существует в вашей БД, и он должен работать.