问题描述
我有形式的电子邮件一个输入和两个提交按钮订阅和取消订阅:
I have form with one input for email and two submit buttons to subscribe and unsubscribe from newsletter:
<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方法,我需要知道哪个按钮被形式submited。但值提交按钮在 self.cleaned_data 字典。
我能得到的按钮值,否则?
I must write my own clean_email method and I need to know by which button was form submited. But the value of submit buttons aren't in
self.cleaned_data
dictionary.Could I get values of buttons otherwise?
推荐答案
您可以使用
self.data这样
在 clean_email
的方法来验证之前访问POST数据。它应该包含一个名为键 newsletter_sub
或 newsletter_unsub
取决于哪个按钮被pressed。
You can use
self.data
in the clean_email
method to access the POST data before validation. It should contain a key called newsletter_sub
or newsletter_unsub
depending on which button was pressed.
# in the context of a django.forms form
def clean(self):
if 'newsletter_sub' in self.data:
# do subscribe
elif 'newsletter_unsub' in self.data:
# do unsubscribe
这篇关于如何建立多个提交按钮Django的形式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!