Javascript 使用Django和Jquery
除了这篇文章,我还想通过拖放改变列表的顺序,然后将其保存在django后端 为了测试和理解,我使用了以下小提琴: 并用我自己的操作更新了表单的操作。因此,我没有使用script.php,而是使用action=“{%url”save_order“%” 在视图中,我的函数如下所示:Javascript 使用Django和Jquery,javascript,jquery,python,django,Javascript,Jquery,Python,Django,除了这篇文章,我还想通过拖放改变列表的顺序,然后将其保存在django后端 为了测试和理解,我使用了以下小提琴: 并用我自己的操作更新了表单的操作。因此,我没有使用script.php,而是使用action=“{%url”save_order“%” 在视图中,我的函数如下所示: def save_order(request): if (request.method == 'POST'): list = request.POST['listCSV'] pr
def save_order(request):
if (request.method == 'POST'):
list = request.POST['listCSV']
print(list)
基本上,我想更改列表元素的顺序,然后保存,这样在刷新页面后,保存的顺序就给出了。但我不知道如何将变量从jquery传递到django站点。当我更改顺序时,我会在“listCSV”中显示已排序的列表。如何将此结果传递到django站点以将其保存在db中
编辑:
If/$(“#listsaveform”).submit();未被注释掉,并且我使用我的save_order函数调用此函数,我得到以下错误:
jquery-1.10.2.min.js:6 POST 405(不允许使用方法)
编辑:
好的,谢谢你的提示。我从未使用过ajax,因此我有点结巴。
我有我的列表结构:
{% if habits %}
<ul id="sortable">
{% for habit in habits|dictsort:"priority" %}
<li class="ui-state-default">{{habit.title}}</li>
{% endfor %}
</ul>
{% endif %}
我的表单看起来怎么样?这是我基于的解决方案 在JS中
//习惯的排序和保存顺序
$(函数(){
$('.sort')。可排序({
句柄:'按钮',
取消:“”,
更新:功能(事件、用户界面){
var result=$(this.sortable)(“serialize”,{key:event.target.id});
//警报(结果);
var csrftoken=getCookie('csrftoken');
$.ajax({
url:“/overview/saveOrder/”,//端点,通常为相同的url
类型:“POST”//http方法
数据:{csrfmiddlewaretoken:csrftoken,
结果:结果,,
},//随post请求发送的数据
//处理成功的响应
成功:函数(json){
console.log(json);//另一个健全性检查
//成功时,以消息形式显示发布到服务器的数据
//警报('yourlist'+json['result']);
},
//处理不成功的响应
错误:函数(xhr、errmsg、err){
控制台日志(“故障”);
log(xhr.status+“:“+xhr.responseText);//向控制台提供有关错误的更多信息
}
});
}
});
//var sorted=$(“.selector”).sortable(“序列化”,{key:“排序”});
//console.log(已排序)
})
//用于获取CSRF令牌
函数getCookie(名称){
var-cookieValue=null;
if(document.cookie&&document.cookie!=''){
var cookies=document.cookie.split(“;”);
对于(变量i=0;i }
更改订单时使用ajax发送数据
$(function() {
$( "#sortable" ).sortable();
});