如何删除表单django

How to delete a forms django

我只希望我的删除按钮能删除特定 id 的表单

现在我可以删除所有项目,但我有一个错误:

'tuple' object has no attribute '_meta'

My views.py

def delete_champs(request, instance):
    #+some code to check if this object belongs to the logged in user
    logged_user = get_logged_user_from_request(request)
    if logged_user:
        form = ChampsForm(request.GET, instance=Champs.objects.get(pk=instance).delete())
        if form.is_valid():
            form.delete()
            return HttpResponseRedirect('/champs') # wherever to go after deleting
        else:
            form = DeleteNewForm(instance=Champs.objects.get(pk=instance))
            return render(request, 'polls/delete_champs.html', {'form': form})
    else:
        form = DeleteNewForm(instance=Champs.objects.get(pk=instance))
        form.delete()

        return render(request, 'polls/delete_champs.html', {'form': form})

my forms.py

class ChampsForm(forms.ModelForm):
    class Meta:
        model = Champs
        fields = ('champs','contenu')


class DeleteNewForm(forms.ModelForm):
    class Meta:
        model = Champs
        fields = ['champs','contenu']

my models.py

class Champs(models.Model):
    champs = models.CharField(max_length=30)
    contenu = models.CharField(max_length=30)

我的观点有误,但我不知道是什么! 删除对象的方法是什么?

这一行似乎是问题的原因:

form = ChampsForm(request.GET, instance=Champs.objects.get(pk=instance).delete())

基本上,您将 Model.delete() 方法的结果作为实例传递。它 returns 一个元组,这显然不是你想要的。相反,您应该传递实际对象,而不是其删除结果:

form = ChampsForm(request.GET, instance=Champs.objects.get(pk=instance))