我正在学习使用dajaxice,并且我一直在破坏,但由于只有ajax部件无法正常工作,整个网站不会破坏并生成错误消息,所以我永远都在找我的错误。有没有办法找出问题的确切位置?
答案 0 :(得分:0)
我在firefox中使用firebug,在网络标签中,django错误消息显示在服务器的响应下。
这是一个ajax示例:
如果django / dajaxice遇到代码中的错误,则会生成一个http 500(内部服务器错误)响应,该firefug以红色突出显示。响应往往相当大,dajaxice响应在html中,但有了一些滚动,总是可以找到错误信息!我认为Google Chrome在开发者工具中提供了类似的功能。
另一个方便的技巧是在dajaxice方法中使用print
语句,例如:
@dajaxice_register
def updateText(request, objId, text):
print "updateText:: objId: %s text %s" % (objId, text)
t = TextItem.objects.get(id=objId)
t.text = text
print "updateText:: t.text: " % t.text
t.save()
json_return = simplejson.dumps({'text': text, 'objId': objId})
print "updateText:: json_return: %s" % json_return
return json_return
当使用./manage.py runserver
运行应用程序时,打印语句立即显示在控制台中,散布着对django的网络请求,如果其中一个打印语句没有比代码执行没有那么远,或者没有遵循条件(if语句)的那个分支。
一旦正确运行,就应该从代码中删除打印语句,因为它们会影响生产环境中应用程序的速度。较长期的解决方案是使用django.logging
模块。