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');
但您发送的是变量 entryname
(undefined
不存在)
data: { entryname:entryname },
你想要什么:
data: { entryname: id },
更新
你还缺一个"
entry.name <div class="delete_button" id="{{ entry.name }}">delete</div>
我正在尝试找出一种方法,让最终用户通过 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');
但您发送的是变量 entryname
(undefined
不存在)
data: { entryname:entryname },
你想要什么:
data: { entryname: id },
更新
你还缺一个"
entry.name <div class="delete_button" id="{{ entry.name }}">delete</div>