Ajax调用不会查看django函数

时间:2018-10-11 20:07:40

标签: python jquery ajax django

嗨,我正在向django视图发送请求,但它不访问视图功能。两者都在同一个应用程序中。我正在使用调试工具,因此尝试调试,但在我看来没有收到任何呼叫, 我的ajax呼叫代码是这样的

$.ajax({
    url: '/edit_profile/',
    type: 'get', // This is the default though, you don't actually need to always mention it
    success: function(data) {
        alert(data);
    },
    failure: function(data) { 
        alert('Got an error dude');
    }
});

url.py

path('edit_profile/', views.edit_profile , name="edit_profile"),

view.py

def edit_profile(request):
       print(request)   
       print(request)     
    if request.method == 'POST':
       return render(request, 'authenticate/edit_profile.html', context)

我正在调试,但是此视图函数未收到呼叫。

1 个答案:

答案 0 :(得分:1)

您可以在REPL

上观看现场演示

如果您不希望视图检查csrf令牌,请首先执行此操作。这可以通过使用装饰器@csrf_exempt来完成。

view.py

from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def edit_profile(request):
    print(request)
    if request.method == 'GET':
        return render(request, 'authenticate/edit_profile.html')

url.py

path('edit_profile/', views.edit_profile , name="edit_profile"),

ajax请求

$.ajax({
    url: '/edit_profile/',
    type: 'GET',// This is the default though, you don't actually need to always mention it
    data:{},
    success: function(data) {
        alert(data);
    },
    failure: function(data) { 
        alert('Got an error dude');
    }
});