2014-04-18 52 views
0

以下是我正在尋找的內容。 我有一個UpdateView,它從數據庫加載的字段呈現從CreateView的窗體。相反,我的編輯表格有只讀 html attribue。所以我需要的是在表單字段上單擊時只讀,當我輸入新值時,當cursos移動到下一個字段時它會自動更新。在Django中單擊並更新數據庫中的編輯表單字段

我如何處理POST提交按鈕的操作?

回答

0

您可以使用JavaScript(jQuery的)這樣做,blur事件

編輯:約CSRF驗證,看https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax

$.post看:https://api.jquery.com/jQuery.post/

template.html

<script type="text/javascript" src="/media/js/jquery-1.10.2.min.js"></script> 
<script> 
// using jQuery 
function getCookie(name) { 
    var cookieValue = null; 
    if (document.cookie && document.cookie != '') { 
    var cookies = document.cookie.split(';'); 
    for (var i = 0; i < cookies.length; i++) { 
     var cookie = jQuery.trim(cookies[i]); 
     // Does this cookie string begin with the name we want? 
     if (cookie.substring(0, name.length + 1) == (name + '=')) { 
     cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); 
     break; 
     } 
    } 
    } 
    return cookieValue; 
} 

$(document).ready(function(){ 
    $("#myinput").blur(function(){ 
    var csrftoken = getCookie('csrftoken'); 
    $.ajaxSetup({ 
    beforeSend: function(xhr) { 
     xhr.setRequestHeader("X-CSRFToken", csrftoken); 
    } 
    }); 

    $.post('/link-to-fun/',{"value":value}); 
    }); 
}); 
</script> 

<input type="text" id="myinput"> 

url.py

寫一個特殊的URL(/鏈接的趣味/)在views.py

url(r'^link-to-fun$', views.change_db_value), 

views.py

def change_db_value(request): 
    value = request.POST.get('value','') 
    # database operation 
+0

功能如果否決了下來,告訴我原因。我會改變我的答案並改善自己。 Thx – WeizhongTu

+0

我做過了 - 您已經從'$ .get'更改爲'$ .post'(這很有道理),但是您沒有處理CSRF,所以我不認爲Django甚至會在沒有聲明它安全的情況下允許這樣做但你*應該*使其安全)。一個mouseout事件對此是一個錯誤的解決方案(模糊看起來更合適),並且你的綁定方法也嚴重過時。最後,我不知道爲什麼你提供的回調只是返回服務器響應。 –

+0

您可以一起發佈CSRF值 – WeizhongTu

相關問題