如何建立多个提交按钮django表单?

问题:

我有一个输入的电子邮件和两个提交按钮订阅和取消订阅通讯:

<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_email方法中使用self.data在验证之前访问POST数据。它应该包含一个名为newsletter_subnewsletter_unsub的键,具体取决于按下了哪个按钮。

# 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

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: How can I build multiple submit buttons django form?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

− 4 = 1