2017-06-06 97 views
0

這是我的Ajax調用:Ajax調用在Django中不起作用?

<script> 
    $(document).ready(function(){ 
     $("#butt2").click(function(){ 
      $.ajax({ 
       url:'{% url 'task:deletetask' %}', 
       data:{'id':2 }, 
       type:"GET", 
       success:function(text){ 
        $("#task2").hide();    
        alert(text); 
      }}); 
     }); 
    }); 


</script> 

這是我的看法功能:

class DeleteTaskView(generic.View): 
    def get(self,request): 
     id = request.GET.get('id',None) 
     Task.objects.get(id=id).delete() 
     return JsonResponse("Task Removed") 

這是網址:

url(r'user/task/delete/$',views.DeleteTaskView.as_view(),name='deletetask'), 

如果我刪除Ajax調用,並且只需添加alert函數,那麼它正常工作,意味着jquery工作,只有ajax調用有問題。幫幫我 !

編輯:我更改URL功能:

url : "{% url 'task:deletetask' %}", 

目前該項目正從數據庫中刪除,但在成功響應隱藏和警報功能無法正常工作。

+0

您是否嘗試打印ID進行,以確保該方法甚至被稱爲和ID被正確傳遞? – Soviut

回答

0
  1. 確保JS重新加載。
  2. 嘗試測試網址(使用完整鏈接)
  3. 打開Broswer並按下F12〜> console並顯示錯誤...服務器或客戶端錯誤?
+0

它顯示:500(內部服務器錯誤)。項目正在從數據庫中刪除,但成功功能現在正在工作 –

+0

您已完成調試嗎? 5xx服務器端〜>檢查服務器功能(打印一些文件)以發現問題,也許這個ID或你的方法不能很好地工作 –

+0

你也可以在CMD上看到服務器日誌,確保你找到了錯誤! (可能是當你得到模型的對象) –

0

JsonResponse可以採取 - 默認情況下 - 只有數據的字典參數。

所以,你應該有:

return JsonResponse({'text': 'Task Removed'})