Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ';QuerySet';对象没有';不支持项目删除错误_Python_Django - Fatal编程技术网

Python ';QuerySet';对象没有';不支持项目删除错误

Python ';QuerySet';对象没有';不支持项目删除错误,python,django,Python,Django,我正在尝试按索引删除QuerySet中的项。我可以使用print q\u set[code\u id-1]显示查询集的项目,但不能使用del q\u set[code\u id-1]删除它。我想永久删除该项目,而不是排除该项目 我得到这个错误: TypeError at /lessons/customcode/5/delete 'QuerySet' object doesn't support item deletion views.py ... def customcode_vie

我正在尝试按索引删除QuerySet中的项。我可以使用
print q\u set[code\u id-1]
显示查询集的项目,但不能使用
del q\u set[code\u id-1]
删除它。我想永久删除该项目,而不是排除该项目

我得到这个错误:

TypeError at /lessons/customcode/5/delete

'QuerySet' object doesn't support item deletion
views.py

...
    def customcode_view(request):
        global q_set
        try:
            u = User.objects.get(username=request.user)
        except:
            return render(request,"login_required.html",{})

        q_set = customcode.objects.filter(user=u)


        if request.method == "POST":
            form = CustomcodeForm(request.POST)
            if form.is_valid():
                cc = form.save(commit=False)
                cc.user = u
                cc.save()
                return HttpResponseRedirect('#BOTTOM')
        else:
            form = CustomcodeForm()

        return render(request, "customcode.html" , {'q_set':q_set,'form':form,})


    def deletecode(request,code_id):
        code_id = int(code_id)
        del q_set[code_id - 1] #this is the problem
        return redirect('customcode_view')

...
models.py

...

    class customcode(models.Model):
        user = models.ForeignKey(User)
        name = models.CharField(blank=False,max_length=250)
        sourcecode = models.TextField(blank=False)

        def __unicode__(self):
            return self.name
...
要永久删除该条目,您不希望从queryset(这只是数据的一个易失性视图)中删除该项,而是从数据库中删除该项:

q_set[code_id - 1].delete()
嗯 dtk

要永久删除条目,您不想从queryset(这只是数据的一个易失性视图)中删除该项,而是要从数据库中删除该项:

q_set[code_id - 1].delete()

dtk

如果您只想删除列表中的条目,而不想删除数据库中的行,请尝试以下操作:

help = q_set[:]
q_set = q_set[:code_id - 1]
q_set.append(help[code_id:])

如果只想删除列表中的条目,而不想删除数据库中的行,请尝试以下操作:

help = q_set[:]
q_set = q_set[:code_id - 1]
q_set.append(help[code_id:])

你想从查询集中还是从数据库中删除它?+1我假设他想从数据库中删除它,只是基于“我想永久删除该项目,而不是过滤排除该项目”这句话,但这可能是过早的o.ODo你想从查询集或数据库中删除它吗?+1我假设他想从数据库中删除它,只是基于“我想永久删除该项目,而不是排除该项目”的措辞,但这可能还为时过早。Othis给了我一个错误:`'customcode'对象没有属性'remove'`你能确保你调用了
delete()
而不是
remove()
?它工作了!。。。很抱歉,我错误地使用了remove(),太好了。如果这确实符合您的要求(即永久修改db),那么如果您接受了答案就太好了。您可能还想了解一下编码约定。至少,您的类名希望以大写字母开头;)请保持好奇。这给了我一个错误:`'customcode'对象没有属性'remove'`你能确保你调用了
delete()
而不是
remove()
?它工作了!。。。很抱歉,我错误地使用了remove(),太好了。如果这确实符合您的要求(即永久修改db),那么如果您接受了答案就太好了。您可能还想了解一下编码约定。至少,您的类名希望以大写字母开头;)保持好奇心。