gpt4 book ai didi

python - 当我尝试删除对象时出现 "list out of index range"错误

转载 作者:太空宇宙 更新时间:2023-11-04 10:41:32 24 4
gpt4 key购买 nike

这是我的 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com