2015-01-07 54 views
0

我想弄清楚一種方法,讓最終用戶通過AJAX刪除銷售商品(如果他們是賣家)。我相信我的代碼下面有很多錯誤,但我的問題具體是在下面的jQuery AJAX函數。jQuery將正確的變量傳遞給我的Django視圖嗎?

是'id'取'entryname'併發送給我的意見?我做得對嗎?

TEMPLATE.HTML

{% for entry in latest_entries %} 
    entry.name <div class="delete_button" id="{{ entry.name }}">delete</div> 
    entry.price 
    entry.picture 
    entry.sellername 

{% endfor %} 

JQUERY

<script> 
$(document).ready(function() { 
    $(".delete_button").click(function() { 
     var id = $(this).attr('id'); 
     $.ajax({ 
      type: "POST", 
      url: "/storefront/", 
      data: { entryname:id }, 
      success: function(response){ 
       alert(response.success); 
      } 
     }); 
     return false; 
    }); 
}); 
</script> 

VIEWS.PY

latest_entries=Entry.objects.order_by('-pub_date')[:16] 

@login_required 
def delete_object(request): 
    if request.is_ajax(): 
     object_name = request.POST.get('entryname') 
     Entry.objects.get(id=object_name).delete() 
     return HttpResponseRedirect('/storefront/') 

回答

1

要保存的ID給變量id

var id = $(this).attr('id'); 

,但你要發送的變量entryname(其中不存在,因此是undefined

data: { entryname:entryname }, 

你想要什麼:

data: { entryname: id }, 

更新

您還缺少一個"

entry.name <div class="delete_button" id="{{ entry.name }}">delete</div> 
+0

好吧有道理。 – stephan

+0

但.attr('id')取{{entry.name}}正確嗎? – stephan

+0

是的,雖然你在'}}後面缺少''''' – rockingskier

0

你有

data: { entryname:entryname }, 

但沒有entryname變量定義。定義了一個變量id。也許這應該是

data: { entryname:id }, 
+0

哦好感謝。 – stephan