【发布时间】:2016-08-31 08:03:27
【问题描述】:
在views.py:
def changeCat(request, cat_key) :
cat = Category.objects.get(pk=cat_key)
for doc in cat.document_set.all() :
log_changing(doc.title, 'deleted', doc.pk)
cat.delete()
return HttpResponseRedirect(reverse('list'))
在静态 js 文件中:
$.post('/handbook/changeCat/', {"title" : $("#catTitle").val()})
我想让 $.post 函数只接受视图返回的内容,就像它在提交表单或使用 location.href 更改 URL 后执行的操作一样。所以我尝试添加 .success 函数:
.success(function(data){
//$('html').html(data)//worked bad for me, causing staticfiles issue
location.reload()//it works, but without using response
});
为什么我不喜欢 reload() 方法:当出现 500 错误时,我没有收到来自 django 的那个可爱的调试报告,而只得到这个错误代码。 另一种方法是制作隐藏表单并提交,而不是使用$.post,但我希望有更有效和正确的方法。
【问题讨论】:
-
您可以通过检查浏览器网络选项卡中的响应来获得“可爱的调试报告”,但它可能会告诉您您缺少 csrf_token
-
Im
not missing csrf token because Im 使用 AjaxSetup 插入它,但是在检查 500 响应时(不在示例中)我看到空响应,只有标题。
标签: jquery django django-views