diff --git a/src/pretix/api/serializers/event.py b/src/pretix/api/serializers/event.py index 465b4b2cfd..6161221793 100644 --- a/src/pretix/api/serializers/event.py +++ b/src/pretix/api/serializers/event.py @@ -378,6 +378,8 @@ class EventSerializer(SalesChannelMigrationMixin, I18nAwareModelSerializer): if prop.name not in meta_data: current_object.delete() + instance._prefetched_objects_cache.clear() + # Item Meta properties if item_meta_properties is not None: current = list(event.item_meta_properties.all()) @@ -398,6 +400,8 @@ class EventSerializer(SalesChannelMigrationMixin, I18nAwareModelSerializer): if prop.name not in list(item_meta_properties.keys()): prop.delete() + instance._prefetched_objects_cache.clear() + # Seats if seat_category_mapping is not None or ('seating_plan' in validated_data and validated_data['seating_plan'] is None): current_mappings = { diff --git a/src/tests/api/test_events.py b/src/tests/api/test_events.py index 2a390f0781..34d5c70cc9 100644 --- a/src/tests/api/test_events.py +++ b/src/tests/api/test_events.py @@ -734,6 +734,9 @@ def test_event_update(token_client, organizer, event, item, meta_prop): format='json' ) assert resp.status_code == 200 + assert resp.data["meta_data"] == { + meta_prop.name: "Workshop" + } with scopes_disabled(): assert organizer.events.get(slug=resp.data['slug']).meta_values.filter( property__name=meta_prop.name, value="Workshop"