У меня есть форма с одним входом для электронной почты и двумя кнопками отправки, чтобы подписаться и отписаться от рассылки:
<form action="" method="post">
{{ form_newsletter }}
<input type="submit" name="newsletter_sub" value="Subscribe" />
<input type="submit" name="newsletter_unsub" value="Unsubscribe" />
</form>
У меня есть также форма класса:
class NewsletterForm(forms.ModelForm):
class Meta:
model = Newsletter
fields = ('email',)
Я должен написать свой собственный метод clean_email, и мне нужно знать, с помощью какой кнопки была отправлена форма. Но значения кнопок отправки нет в self.cleaned_data
словаре. Могу ли я получить значения кнопок в противном случае?
clean
это действительно не то место, где можно делать логику на уровне модели. Это специально для очистки формы и поиска любыхValidationError
s, которые охватывают несколько входов. Ответ Свена больше в правильном направлении, но все же не обязательно лучший ответНапример:
источник
def post(self, request, *args, **kwargs)
.Вы также можете сделать это,
КОД
источник
Теперь это старый вопрос, но у меня была та же проблема, и я нашел решение, которое работает для меня: я написал MultiRedirectMixin.
источник
один URL на тот же вид! вот так!
urls.py
views.py
источник