这是我的 delete_category 函数:
def delete_category(request, id):
user = request.user
category = Category.objects.get(pk=id)
category.user.remove(user)
return HttpResponseRedirect(reverse('auth_profile', args=[user.username]))
这是我的 category_detail 函数:
def category_detail(request, category_name):
user = request.user
category = Category.objects.filter(name=category_name, user__username=user)[0]
return render_to_response("category_detail.html", { "category":category}, context_instance=RequestContext(request))
这是 category_detail.html:
<p>{{category.name}}</p>
<a href="{% url 'delete_category' category.id %}">delete</a>
如果我有多个类别,我可以在点击删除链接时删除。但是,如果我只有一个类别,则会出现此错误:
列表索引超出范围
最佳答案
改变
category = Category.objects.filter(name=category_name, user__username=user)[0]
通过
categories = Category.objects.filter(name=category_name, user__username=user)
category = None
if categories:
category = categories[0]
另请参阅如何正确使用 QuerySet 对象 here
关于python - 当我尝试删除对象时出现 "list out of index range"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20382692/