删除后{django重定向

时间:2018-04-03 12:58:20

标签: django redirect response django-database

从我的数据库中删除对象后,我想重定向到某个视图。

这是删除发生的视图:

def client_delete(request):
    if request.method == 'GET':
        return _not_exist_page(request)
    else:
        client = Client.objects.get(id=request.POST['id'])
        client.delete()
        print('deleted')
        return redirect('clients:index')
        print('deleted2')

当我在这里删除一个对象时,我在终端上看到的内容:

deleted
[03/Apr/2018 15:55:50] "POST /clients/delete/ HTTP/1.1" 302 0
[03/Apr/2018 15:55:50] "GET /clients/ HTTP/1.1" 200 7467

这意味着重定向已被触发(这就是为什么第二次打印不显示),但浏览器中的视图无法更改。

知道为什么会这样吗?

由于

2 个答案:

答案 0 :(得分:2)

您正在向服务器发出jQuery POST请求,这意味着服务器无法控制下一步显示的内容。我的建议是将JsonResponse返回到{'status': True, etc...}之类的服务器,并根据您的服务器响应更改视图。您可以使用javascript窗口更改视图。

// similar behavior as an HTTP redirect
window.location.replace("http://stackoverflow.com");

答案 1 :(得分:0)

你可以这样做:

from django.shortcuts import redirect

return redirect('person_list')

其中person_list是您的网址名称

url('delete/<int:id>/', persons_delete, name="persons_delete")