【问题标题】: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;

标签: python django


【解决方案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__() 相同的逻辑,如果键不存在,则使用挂钩返回默认值。
  • 没什么,它只是不工作..它不会删除我库存中的值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-25
  • 2018-10-18
  • 2010-09-06
相关资源
最近更新 更多