2016-12-24 62 views
0

我有一個簡單的表格,添加了一個家庭的個人信息。有時它通過一個提交節省了兩個人的實例。也許我的鼠標有問題,雙擊而不是一次點擊(它有一些問題)。我認爲這是不可能的,django只接受來自表單實例的一個發佈請求,而不是更多(也許它接受)。如果代碼有問題呢?如果它是我的代碼問題,爲什麼它偶爾會發生?如何通過一次點擊避免多發郵件請求?

house = get_object_or_404(House, id=code) 
if request.method == 'POST': 
    form = ParentForm(request.POST) 
    if form.is_valid(): 
     # save it if it's valid 
     parent = form.save(commit=False) 
     if parent.living == 0: 
      parent.in_family = 0 
     if not parent.guardian: 
      parent.save() 
     if parent.guardian and parent.in_family: 
      parent.save() 

我使用Django 1.8

編輯清除:這是不是唯一的視圖有時可以節省兩次。也許是在Django

+0

可能你的視圖在代碼的任何部分返回HttpRedirect本身? – neverwalkaloner

+0

不,它不是。它在別的地方 –

回答

0

的錯誤要解決這個問題,首先需要在相應的數據庫表中創建唯一約束。真正的解決方案基於數據庫模式。我不知道parent表中有哪些字段(列),您可以從對這兩個字段添加唯一約束開始:child_idparent_name

另一個問題是,你需要避免第二次點擊。所以基本上你需要編寫一些JavaScript代碼:它聽取提交按鈕的onClick事件。點擊按鈕後,偵聽器將disabled屬性設置爲該按鈕以防止進一步點擊。