1

我知道例如:

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?

谢谢

4

3 回答 3

1

看看哨兵(和相应的乌鸦)

(该Network选项卡应该能够向您显示请求和相应的响应。如果请求是 ajax,我相信较新的 django 版本甚至可以为您提供更简单的堆栈跟踪版本)

于 2013-01-05T11:57:00.220 回答
0

error CallBack在ajax中有一个。它会吐出实际的错误。

$.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
         }
     });
于 2013-01-05T12:09:31.633 回答
0

有许多第三方应用程序使调试 ajax 更容易。我过去曾成功使用过它:https ://github.com/yaniv-aknin/django-ajaxerrors

或者,如果您不喜欢使用应用程序,chrome 开发人员工具可能就足够了,正如此线程中所建议的那样:Django:Are there any tools/tricks to use on debugging AJAX response?

于 2013-01-05T16:37:46.843 回答