如何在生成的表单中添加删除按钮到django.forms?

时间:2011-03-01 21:02:45

标签: python django

如何向django.forms生成的编辑表单添加删除按钮(注意,不是管理员)?

很容易在(/app/model/<id>/delete/等)上添加删除视图,但如何在生成的表单旁边添加“删除”按钮?

我不得不错过一些简单的事情吗?

2 个答案:

答案 0 :(得分:17)

向模板添加提交按钮,将名称设置为“删除”,检查视图是否被点击:

if request.POST.get('delete'):
    obj.delete()

答案 1 :(得分: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()

然后你可以将复选框重新设置为按钮。 但是你可能更喜欢带名字的普通按钮......