删除()函数不起作用

Posted

技术标签:

【中文标题】删除()函数不起作用【英文标题】:delete() function not working 【发布时间】:2013-01-21 07:45:39 【问题描述】:

delete() 函数在 django 中不起作用,

def delete_hardware (request):
    notice = ''
    inventory = get_object_or_404(inventory, id = request.GET.get('id'))
    if inventory:
        inventory.delete()
        notice = "Hardware was deleted"
    return render_to_response('form.html', 'notice': notice,
                              context_instance=RequestContext(request))

......这些是我在 form.html 中的代码

<td bgcolor='#f1f1f1'><a onclick="javascript:confirmDelete('/delete/?id=id')">
<img src=' MEDIA_URL /images/delete.png' width=25 height=25 />
            </a></td>

【问题讨论】:

有一个问题here尝试这个话题,也许能帮到你。 confirmDelete 的脚本呢? 好的,我只提供一个示例代码 function confirmDelete(delUrl) if (confirm("您确定要从库存中删除硬件吗?")) parent.TINY.box.hide(); document.location = delUrl; 【参考方案1】:

views.py

def delete_hardware (request, id):
    inventory = get_object_or_404(inventory, pk=id).delete()
    messages.success(request, "Hardware was deleted!")
    return HttpResponseRedirect(reverse('app_name:url_name'))

urls.py

url(r'^delete/(?P<id>\d+)/$', 'delete_hardware', 
    name='delete_hardware'),

我无法提供完整的详细代码,因为您没有将完整的代码放在您的问题中。我不知道为什么,但这取决于你。这只是一个指南,我希望它能清除您的想法。如果您的表单已提交方法=GET

,您只能获取数据
<a href="/delete/value.id" class="delete-hardware">Delete</a>

<script>
$('.delete-hardware').click(function()
    var url = $(this).attr('href');
    document.location.href = url;
);
</script>

【讨论】:

能否提供您的模板代码,因为您的视图没有问题 只是更新你的问题,不要放在这里。阅读这些代码的人不会轻易理解它:)【参考方案2】:

应该是request.GET['id']

试试吧

def delete_hardware (request):
 notice = " "
 id = request.GET['id']
 try:
   inv = inventory.objects.get(id = id)
   inv.delete()
   notice = "Hardware was deleted"
 except inventory.DoesNotExist:
    raise Http404
 return render_to_response('form.html', 'notice': notice,
                              context_instance=RequestContext(request))

【讨论】:

inventory = get_object_or_404(inventory, id = request.GET['id']) --> 不行:( 是不是给你一个错误?或者只是不工作? –不工作:( @Jonathan 如果request.GET 是一个字典,那么使用[key].get(key) 语法并不重要 request.GET 是实现标准字典方法的QueryDict 对象的实例——包括.get()。来自文档,docs.djangoproject.com/en/dev/ref/request-response/… 使用与上面的 __getitem__() 相同的逻辑,如果键不存在,则使用挂钩返回默认值。 没什么,它只是不工作..它不会删除我库存中的值。

以上是关于删除()函数不起作用的主要内容,如果未能解决你的问题,请参考以下文章

添加/删除小部件以及调整大小不起作用

Web SQL 删除查询不起作用

为啥这个 micropython 函数不起作用?

H2 删除并创建别名 to_char 不起作用

学说迁移:向现有表添加和删除两个外键列不起作用

JavaScript函数导入不起作用