如何在使用djangorestframework装饰器时调试django ajax函数?

时间:2017-05-13 17:05:03

标签: python ajax django django-rest-framework

如何在使用djangorestframework装饰器时调试ajax函数。

@api_view(['POST', ])
def authfb(request):
    require_more_data = True
    if request.method == 'POST':
        first_name = request.data['fb_first_name']
        last_name = request.data['fb_last_name']
        fb_picture = request.data['fb_picture']
        fb_friends_number = request.data['fb_friends_number']
        fb_username = request.data['fb_username']
        fb_id = int(request.data['fb_id'])
        fb_link = request.data['fb_link']
        username = fb_username.replace(' ', '')

        # print(username)
        password = '112358'
        user = auth.authenticate(username=username, password=password)


    return Response(request.data)

代码示例。当通过ajax请求调用视图函数时,Django不会告诉任何错误。这使我使用打印并手动搜索错误的行,仍然不知道到底出了什么问题。如何调试它,如何像往常一样使django日志错误?

1 个答案:

答案 0 :(得分:0)

对于调试ajax函数,最好从Django视图返回响应数据(json格式化数据,以获得更高的透明度),这可以从ajax错误方法记录在控制台中。然后,通用方法总是派上用场调试任何请求(打印语句,尝试和除语句)

我建议更频繁地使用try语句,因为它经验丰富的编码员非常喜欢并且易于调试。

举个简单的例子:

def authfb(request):
    if request.method == "POST":
        msg = "Unknown error"
        status = False
        try:
            #do something
            msg = "Everything's​ Goood"
            status = True
        except Exception as e:
            msg = str(e)
    return JsonResponse ({'status':status, 'msg':msg, 'anything':'that_thing'})

虽然这只是我的建议,但还有很多其他更好的方法。 从我的观点来看,没有正确的调试方式,从各方面来看都是正确的。

希望你得到你想要的东西。