Ho modulo con un ingresso per la posta elettronica e due pulsanti di presentare per iscriversi e cancellarsi dalla newsletter:Come posso creare un modulo django con più pulsanti di invio?
<form action="" method="post">
{{ form_newsletter }}
<input type="submit" name="newsletter_sub" value="Subscribe" />
<input type="submit" name="newsletter_unsub" value="Unsubscribe" />
</form>
ho forma anche di classe:
class NewsletterForm(forms.ModelForm):
class Meta:
model = Newsletter
fields = ('email',)
devo scrivere il mio metodo clean_email ed io è necessario sapere con quale pulsante è stato inviato il modulo. Ma il valore dei pulsanti di invio non è nel dizionario self.cleaned_data
. Posso ottenere i valori dei pulsanti altrimenti?
puoi dare un esempio annotato? sarebbe davvero d'aiuto – Jharwood
Non penso che 'clean' non sia il posto giusto per fare la logica a livello di modello. È specifico per la pulizia di un modulo e la ricerca di qualsiasi 'ValidationError's che si estenda su più input. La risposta di Sven è più nella giusta direzione, ma non è ancora la risposta migliore – Patrick
Rischio per la sicurezza! Usare i dati del modulo per apportare modifiche al database prima che il modulo sia stato convalidato è pericoloso. –