From c3041aa8c4cb8750c42f167b99ccba0090b3ed4d Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Fri, 6 Dec 2019 20:30:35 +0100 Subject: [PATCH] Fix ItemBundle.MultipleObjectsReturned error when extending cart lifetimes --- src/pretix/base/services/cart.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pretix/base/services/cart.py b/src/pretix/base/services/cart.py index c811e59df2..baf1c79f15 100644 --- a/src/pretix/base/services/cart.py +++ b/src/pretix/base/services/cart.py @@ -15,7 +15,7 @@ from django_scopes import scopes_disabled from pretix.base.channels import get_all_sales_channels from pretix.base.i18n import language from pretix.base.models import ( - CartPosition, Event, InvoiceAddress, Item, ItemBundle, ItemVariation, Seat, + CartPosition, Event, InvoiceAddress, Item, ItemVariation, Seat, SeatCategoryMapping, Voucher, ) from pretix.base.models.event import SubEvent @@ -364,10 +364,10 @@ class CartManager: cp.item.requires_seat = cp.requires_seat if cp.is_bundled: - try: - bundle = cp.addon_to.item.bundles.get(bundled_item=cp.item, bundled_variation=cp.variation) + bundle = cp.addon_to.item.bundles.filter(bundled_item=cp.item, bundled_variation=cp.variation).first() + if bundle: price = bundle.designated_price or 0 - except ItemBundle.DoesNotExist: + else: price = cp.price changed_prices[cp.pk] = price