我知道例如:
def home(request):
if request.method == 'POST':
k = 'p' % 1
return HttpResponse(simplejson.dumps(dict()), mimetype='application/javascript')
else:
k = 'p' % 1
return render_to_response('index.html',locals());
url(r'^$', 'app.home'),
如果我使用浏览器访问主页,django将向我返回一个调试页面并显示k = 'p' % 1
但如果我使用$.ajax()
向此视图发送帖子,则Chrome控制台只显示POST http://(some url here):8000/ 500 (INTERNAL SERVER ERROR)
那么调试第二种情况有什么好方法吗? 我不知道调试django,有没有人有更好的方法来调试django?
感谢
答案 0 :(得分:1)
查看sentry(和相应的乌鸦)
(Network
标签应该能够显示请求和相应的响应。我相信如果请求是ajax,更新的django版本甚至会给你一个更简单的堆栈跟踪版本。
答案 1 :(得分:0)
ajax中有一个error CallBack
。它将显示实际错误。
$.ajax({
type: 'POST',
url: '{% url 'url_name_for_your_view_here' %}',
data: {'csrfmiddlewaretoken': '{{csrf_token}}'},
dataType: "text",
success: function(response) {
//do something here if everything goes well
},
error: function(rs, e) {
alert(rs.responseText); //throw actual error, just for debugging purpose
alert('Oops! something went worng..'); // alert user that something goes wrong
}
});
答案 2 :(得分:0)
有许多第三方应用程序可以更轻松地调试ajax。我过去曾成功使用过此功能:https://github.com/yaniv-aknin/django-ajaxerrors
或者,如果您不想使用应用,Chrome开发者工具可能就足够了,正如此主题中所建议的那样:Django: Are there any tools/tricks to use on debugging AJAX response?