2017-10-15 54 views
0

我有多個行的表,其中的每一個具有一個「編輯」按鈕。點擊這個按鈕後,用戶應該重定向到一個表格,他的細節已經預先填好。 「編輯」按鈕的定義裏面現在,我已經定義了數據屬性:Django的:返回一個與模板POST參數

<a href='#' class="edit-user" data-email="[email protected]">edit</a> 

使用jQuery,我獲得了「電子郵件」數據屬性的值,並通過它在一個POST請求/add-edit-user,這是也映射到了我的表單頁面:

$(".edit-user").click(function() 
    { 
     var url = base_url + '/add-edit-user/'; 
     var data = { 
      'email': $(this).data('email'), 
      'csrfmiddlewaretoken': csrftoken, 
     }; 
     // $.post(url, data); 
     $.post(url, data).done(function(result) { 
      console.log(result); 
     }).fail(function(error) { 
      console.log(error); 
     }); 
    }); 

/add-edit-user URL映射到下面的圖,其中我試圖定義我的表單對象,並傳遞一個上下文變量,以我的模板文件:

def add_edit_users(request): 
    form = AddUpdateForm(request.POST or None) 
    data = {'form': form} 

    return render(request, 'add_edit_users.html', data) 

現在,我的假設是,如果用戶點擊'編輯'按鈕,我會設置數據屬性中的'email'參數,並在我的POST請求中傳遞給/add-edit-user URL,之後我會渲染我與表單對象作爲上下文變量將與已經預先填充email字段顯示錶單的表單模板。

但是,單擊edit鏈接時,該頁面不會重定向到表單頁面,但我會在我的回覆中獲得整個表單頁面的HTML。我怎樣才能重定向流量到我的表單模板,這樣我的輸入字段從POST變量預填?

+0

阿賈克斯後不會重定向你。你有沒有嘗試過創建一個隱藏的電子郵件字段?然後通過編輯按鈕提交。 –

+0

@AjmalNoushad你可以更多地討論嗎?不知道我是否理解這個流程是如何的。 –

+0

好吧,我已經添加了一個答案 –

回答

1

要實現可以通過創建一個這樣的形式來完成什麼:

<form method='post' action='/add-edit-user/'> 
    {% csrf_token %} 
    <input type="email" name="email" value="[email protected]" hidden> 
    <button class="edit-user" type="submit">Edit</button> 
</form> 

這種形式發送電子郵件字段的值後的數據的網址:/添加編輯用戶/ 。導致重定向到預填充電子郵件字段的網址。

+0

然後,我如何在'/ add-edit-user'頁面上預先填寫此電子郵件的值? –

+0

您是否嘗試提交此表?我認爲它會被預先填充,因爲你將request.POST作爲參數傳遞給表單。看形式 –

+0

的行爲屬性是的,你的解決方案工作。謝謝! –