特定のタイプの最後のオブジェクト(テーブルの最後の行)を削除しないようにする方法はありますか?そのようなオブジェクトは一般的に削除できるはずですが、少なくとも1つのエントリが残っていることが必要です。この特定のケースでは、少なくとも1つのエントリがユーザに関連付けられています。Django管理者の場合、最後のオブジェクトの削除を防ぐ方法
私は、モデルの削除機能をオーバーライドしてみました:
def delete(self, *args, **kwargs):
others = Presentation.objects.filter(user=self.user).exclude(pk=self.pk)
if len(others) < 1:
pass
else:
super(Presentation, self).delete(*args, **kwargs)
これは動作しますが、ユーザーが削除が実際に成功したことを告げています。私はむしろ、検証が失敗したときのように、表示されるエラーメッセージが好きです。検証は、私が知る限り、保存にのみ適用されます。
これは動作しませんでした。 'clean()'は保存時には明らかに呼び出されますが、削除時には呼び出されません。 – pholz
それは意味があります。削除時に何かをきれいにする理由はありません。私の悪い。 –
私の回答を更新しました –