2

我正在使用 DjangoDeleteView删除数据库中的项目。我已经使用单独的模板来显示删除确认消息,但是当我按下是按钮时,我得到了ProtectedError因为客户表与 Accounts 表链接。因此,我想ProtectedError在同一模板中处理并给用户另一条消息。

这是我用来执行删除的代码:

class Customer(DeleteView):
    #Delete Customers
    model = Customer
    template_name = 'project_templates/delete_customer.html'

    def get_success_url(self):
        return reverse('inactive_customers')

如果有人可以建议我一种处理这种情况的方法,那就太好了。

4

1 回答 1

5

您应该能够捕获异常。当您查看DeletionMixin

https://github.com/django/django/blob/master/django/views/generic/edit.py#L256

您可以覆盖该post方法并实现以下目标:

def post(self, request, *args, **kwargs):
    try:
        return self.delete(request, *args, **kwargs)
    except ProtectedError:
        # render the template with your message in the context
        # or you can use the messages framework to send the message

希望这可以帮助。

于 2013-11-04T19:41:21.087 回答