如何在django.forms生成的表单中添加删除按钮?
如何在由 django.forms 生成的编辑表单中添加一个删除按钮(注意,这里不是指管理后台)?
在 (/app/model/<id>/delete/
等等) 上添加一个删除视图其实很简单,但我想知道如何在生成的表单旁边添加一个“删除”按钮?
我是不是漏掉了什么简单的东西?
2 个回答
1
你可以使用像这样的通用形式
class DeletableModelForm(forms.ModelForm):
"""
Model form that allows you to delete the object
"""
delete = forms.BooleanField(
initial=False,
help_text=_('Check this to delete this object')
)
def save(self, commit=True):
if self.cleaned_data['delete']:
return self.instance.delete()
return super(DeletableModelForm, self).save()
然后你可以把复选框的样式改成看起来像按钮的样子。不过,实际上用普通的按钮可能会更好,给它起个名字...
17
在模板中添加一个提交按钮,把它的名字设置为 'delete',然后在你的视图中检查这个按钮是否被点击:
if request.POST.get('delete'):
obj.delete()