diff --git a/src/pretix/control/views/event.py b/src/pretix/control/views/event.py index df00a1d20e..f48221c7a1 100644 --- a/src/pretix/control/views/event.py +++ b/src/pretix/control/views/event.py @@ -255,9 +255,7 @@ class PaymentProviderSettings(EventSettingsViewMixin, EventPermissionRequiredMix @cached_property def provider(self): - provider = self.request.event.get_payment_providers()[self.kwargs['provider']] - if not provider: - raise Http404() + provider = self.request.event.get_payment_providers().get(self.kwargs['provider']) return provider @cached_property @@ -276,6 +274,13 @@ class PaymentProviderSettings(EventSettingsViewMixin, EventPermissionRequiredMix form.prepare_fields() return form + def dispatch(self, request, *args, **kwargs): + if not self.provider: + messages.error(self.request, _('This payment provider does not exist or the respective plugin is ' + 'disabled.')) + return redirect(self.get_success_url()) + return super().dispatch(request, *args, **kwargs) + @cached_property def settings_content(self): return self.provider.settings_content_render(self.request)