Fix: EventUpdateView - Formular mit bestehenden Daten vorbefüllen
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.
This commit is contained in:
parent
fb782d85db
commit
cb08474301
@ -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
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user