HttpResponseRedirect无法在按钮单击时删除和页面重定向

时间:2018-04-30 01:58:40

标签: python html django

我正在尝试通过单击按钮删除作业并重定向到其他页面。删除有效,但重定向不起作用。我的代码如下:

views.py:

@login_required
def delete_job(request):
     job_id = request.GET['Jobid']
     job = Job.objects.get(pk=job_id)
     try:
         job.delete()
         #return render(request, 'main/communitypartner_dash.html', {'form':form,'job' : job})
         #return redirect('user_dash')
         return HttpResponseRedirect('main/communitypartner_dash.html')
         #return HttpResponseRedirect(reverse('user_dash'))
         #jobs = user.jobs.all()
         #return render_to_response('main/communitypartner_dash.html')
     except Exception as e:
         return HttpResponse("deletion not successful")
     #return render(request, 'main/communitypartner_dash.html', {'form':form,'job' : job})

url.py:

url(r'^job/job_delete/$', views.delete_job),

HTML:

<button type="button" class="btn btn-primary" onclick="doDelete()">Dissolve</button>
       <script>
           function doDelete(){

             $.ajax({
                 url: '/job/job_delete/', 
                 data: {
                     'csrfmiddlewaretoken': $('input[name="csrfmiddlewaretoken"]').val(),
                     'Jobid': {{job.id}}
    },
    dataType: 'json',
    complete: function (response) {
    //    $('#status').html(response.responseText);
    },
    error: function () {
    //    $('#status').html('Bummer: there was an error!');
    },

});     返回false;

}               

我尝试了在views.py的try部分中注释掉的所有方法。请帮忙。感谢

1 个答案:

答案 0 :(得分:0)

以下内容可行

from django.http import JsonResponse

# codes here
job.delete()
return JsonResponse({'url':'main/communitypartner_dash.html'}) # whatever the url is
# or return JsonResponse({'url':reverse('url_name',kwargs={"arg":arg})})

JS

// codes here
complete: function (response) {
    window.location.href = response.url
},
error: function () {
//  $('#status').html('Bummer: there was an error!');
},