2

DjangoDeleteViewを使用してデータベース内のアイテムを削除しています。別のテンプレートを使用して削除確認メッセージを表示しましたが、[はい] ボタンを押すとProtectedError、顧客テーブルがアカウント テーブルにリンクされているため取得されます。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 に答える