Ich habe ein Formular mit einer Eingabe für E-Mail und zwei Senden-Schaltflächen zum Abonnieren und Abbestellen des Newsletters:
<form action="" method="post">
{{ form_newsletter }}
<input type="submit" name="newsletter_sub" value="Subscribe" />
<input type="submit" name="newsletter_unsub" value="Unsubscribe" />
</form>
Ich habe auch Klassenform:
class NewsletterForm(forms.ModelForm):
class Meta:
model = Newsletter
fields = ('email',)
Ich muss meine eigene clean_email-Methode schreiben und wissen, über welche Schaltfläche das Formular gesendet wurde. Der Wert der Senden-Schaltflächen befindet sich jedoch nicht im self.cleaned_data
Wörterbuch. Könnte ich sonst Werte von Schaltflächen erhalten?
clean
nicht der richtige Ort ist, um Logik auf Modellebene zu erstellen. Es dient speziell zum Bereinigen eines Formulars und zum Auffinden von FormularenValidationError
, die mehrere Eingaben umfassen. Svens Antwort ist eher in die richtige Richtung, aber immer noch nicht unbedingt die beste AntwortZ.B:
quelle
def post(self, request, *args, **kwargs)
.Sie können auch so tun,
CODE
quelle
Es ist jetzt eine alte Frage, trotzdem hatte ich das gleiche Problem und fand eine Lösung, die für mich funktioniert: Ich habe MultiRedirectMixin geschrieben.
quelle
eine URL zur gleichen Ansicht! wie so!
urls.py
views.py
quelle