jQuery 是否将正确的变量传递给我的 Django 视图?

Is jQuery passing the correct variable to my Django view?

我正在尝试找出一种方法,让最终用户通过 AJAX 删除待售商品(如果他们是卖家)。我确定我下面的代码有不少错误,但我的问题具体是下面的 jQuery AJAX 函数。

是'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/')

你有

data: { entryname:entryname },

但未定义 entryname 变量。定义了一个 id 变量。也许应该是

data: { entryname:id },

您正在将 id 保存到变量 id

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

但您发送的是变量 entrynameundefined 不存在)

data: { entryname:entryname },

你想要什么:

data: { entryname: id },

更新

你还缺一个"

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