Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除后的django重定向_Django_Redirect_Response_Django Database - Fatal编程技术网

删除后的django重定向

删除后的django重定向,django,redirect,response,django-database,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('delete

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

以下是我对删除操作的看法:

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
这意味着重定向被触发(这就是为什么第二次打印没有显示),但我的浏览器中的视图没有改变

知道为什么会这样吗

谢谢

您可以:

from django.shortcuts import redirect

return redirect('person_list')
其中person_list是您的URL名称

url('delete/<int:id>/', persons_delete, name="persons_delete")
url('delete/',persons\u delete,name=“persons\u delete”)
您可以执行以下操作:

from django.shortcuts import redirect

return redirect('person_list')
其中person_list是您的URL名称

url('delete/<int:id>/', persons_delete, name="persons_delete")
url('delete/',persons\u delete,name=“persons\u delete”)

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

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

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

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

你能解释一下如何从前端调用client_delete url吗?jQuery post请求。你能解释一下如何从前端调用client_delete url吗?jQuery post请求。触发视图进行删除没有问题,不起作用的是删除对象后重定向到索引。你的建议正是我重定向到索引所做的。好的,我明白了。“clients:index”是appname和view name吗?触发view进行删除没有问题,不起作用的是删除对象后重定向到index。你的建议正是我重定向到索引所做的。好的,我明白了。那么,“clients:index”是appname和view名称吗?