我有一個帶有一個電子郵件輸入和兩個提交按鈕的表單,用于訂閱和取消訂閱新聞通訊:<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字典中。否則我可以獲取按鈕的值嗎?
3 回答

當年話下
TA貢獻1890條經驗 獲得超9個贊
您可以self.data在clean_email方法中使用來在驗證之前訪問POST數據。它應包含一個稱為newsletter_sub或newsletter_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
添加回答
舉報
0/150
提交
取消