0
以下是我正在尋找的內容。 我有一個UpdateView,它從數據庫加載的字段呈現從CreateView的窗體。相反,我的編輯表格有只讀 html attribue。所以我需要的是在表單字段上單擊時只讀,當我輸入新值時,當cursos移動到下一個字段時它會自動更新。在Django中單擊並更新數據庫中的編輯表單字段
我如何處理POST提交按鈕的操作?
以下是我正在尋找的內容。 我有一個UpdateView,它從數據庫加載的字段呈現從CreateView的窗體。相反,我的編輯表格有只讀 html attribue。所以我需要的是在表單字段上單擊時只讀,當我輸入新值時,當cursos移動到下一個字段時它會自動更新。在Django中單擊並更新數據庫中的編輯表單字段
我如何處理POST提交按鈕的操作?
您可以使用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
功能如果否決了下來,告訴我原因。我會改變我的答案並改善自己。 Thx – WeizhongTu
我做過了 - 您已經從'$ .get'更改爲'$ .post'(這很有道理),但是您沒有處理CSRF,所以我不認爲Django甚至會在沒有聲明它安全的情況下允許這樣做但你*應該*使其安全)。一個mouseout事件對此是一個錯誤的解決方案(模糊看起來更合適),並且你的綁定方法也嚴重過時。最後,我不知道爲什麼你提供的回調只是返回服務器響應。 –
您可以一起發佈CSRF值 – WeizhongTu