删除()函数不起作用
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__() 相同的逻辑,如果键不存在,则使用挂钩返回默认值。
没什么,它只是不工作..它不会删除我库存中的值。以上是关于删除()函数不起作用的主要内容,如果未能解决你的问题,请参考以下文章