From cb08474301555e3ecad7beb8d62dd08735f12c89 Mon Sep 17 00:00:00 2001 From: Matthias Nagel Date: Thu, 20 Nov 2025 08:54:28 +0100 Subject: [PATCH] =?UTF-8?q?Fix:=20EventUpdateView=20-=20Formular=20mit=20b?= =?UTF-8?q?estehenden=20Daten=20vorbef=C3=BCllen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Behebt einen Fehler in der , bei dem beim Bearbeiten eines Events (Spiel oder Training) das Formular leer angezeigt wurde anstatt mit den vorhandenen Daten des Events vorbefüllt zu sein. Die Ursache war eine Inkonsistenz bei der Übergabe der Modellinstanz: Die erhielt ein übergeordnetes -Objekt, während die für oder eine spezifische Child-Instanz erwartete. Änderungen: - Überschreibung der Methode in , um die korrekte untergeordnete Instanz ( oder ) des Events abzurufen und an das Formular zu übergeben. - Aktualisierung der Methode in zur Verwendung von für eine robustere Typüberprüfung des Objekts. --- calendars/views.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/calendars/views.py b/calendars/views.py index 7517165..77c8d62 100644 --- a/calendars/views.py +++ b/calendars/views.py @@ -76,10 +76,20 @@ class EventUpdateView(LoginRequiredMixin, CoachCheckMixin, UpdateView): template_name = 'calendars/event_form.html' success_url = reverse_lazy('dashboard') + def get_object(self, queryset=None): + # Fetch the event and then check if it's a game or training to return the specific instance + obj = super().get_object(queryset) + if hasattr(obj, 'game'): + return obj.game + if hasattr(obj, 'training'): + return obj.training + return obj + def get_form_class(self): - if hasattr(self.object, 'game'): + # self.object is now the correct child instance because of the overridden get_object + if isinstance(self.object, Game): return GameForm - if hasattr(self.object, 'training'): + if isinstance(self.object, Training): return TrainingForm return EventForm