From 20075fbe1fd08851a7e7aaf1badea80ae5c411f5 Mon Sep 17 00:00:00 2001 From: Matthias Nagel Date: Fri, 21 Nov 2025 22:58:38 +0100 Subject: [PATCH] Fix: Behebung von Fehlern im Abstimmungs-Feature MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Behebt zwei Fehler im kürzlich implementierten Abstimmungs-Feature: 1. **Fehler bei Mehrfachauswahl:** Ein logischer Fehler in der -View, der beim Abstimmen bei Multiple-Choice-Umfragen auftrat, wurde behoben. Die inkorrekte Verwendung von wurde durch eine korrekte Iteration ersetzt, die den Benutzer aus den der einzelnen Auswahlmöglichkeiten entfernt. 2. **Anzahl der Auswahlmöglichkeiten:** Das Formular zur Erstellung von Umfragen zeigte nur zwei Felder für Auswahlmöglichkeiten an. Dies wurde korrigiert, sodass nun, wie gefordert, bis zu fünf Auswahlmöglichkeiten eingegeben werden können. Änderungen: - Korrektur der Logik zum Zurücksetzen von Stimmen in für Mehrfachauswahl-Umfragen. - Anpassung des in , um die Anzahl der angezeigten Auswahlfelder auf 5 zu erhöhen. --- polls/forms.py | 2 +- polls/views.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/polls/forms.py b/polls/forms.py index 1f9b147..d17318c 100644 --- a/polls/forms.py +++ b/polls/forms.py @@ -20,4 +20,4 @@ class ChoiceForm(forms.ModelForm): 'choice_text': forms.TextInput(attrs={'class': 'form-control', 'required': True}), } -ChoiceFormSet = formset_factory(ChoiceForm, extra=2, max_num=5) +ChoiceFormSet = formset_factory(ChoiceForm, extra=5, max_num=5) diff --git a/polls/views.py b/polls/views.py index 885bbbc..b4ee47a 100644 --- a/polls/views.py +++ b/polls/views.py @@ -104,7 +104,8 @@ def vote(request, poll_id): if poll.multiple_choice: selected_choice_ids = request.POST.getlist('choice') # First, remove user's previous votes for this poll - poll.choices.filter(votes=user).update(votes=None) + for choice in poll.choices.all(): + choice.votes.remove(user) # Then, add new votes for choice_id in selected_choice_ids: choice = get_object_or_404(Choice, pk=choice_id)