如何删除表单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))
我只希望我的删除按钮能删除特定 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))