1

on_deleteモデルで次のような制約を定義しました。

cliente = models.ForeignKey(Cliente,related_name="cliente",on_delete=models.PROTECT)

顧客に関連する注文を削除すると、エラーが発生しますが、次のように 500 エラーが発生します。

「保護された外部キー「Pedido.cliente」を介して参照されているため、モデル「Cliente」の一部のインスタンスを削除できません」

そして、全体的な一般的な情報、これが発生したときにカスタムメッセージエラーを設定できる場合はどうすればよいですか?誰かがこれを行う方法を知っていますか?

4

2 に答える 2

2

最後に、私はこれでそれを行いました。この問題に a を使用していることに注意してくださいDeleteView:

def delete(self, request, *args, **kwargs):
    self.object = self.get_object()
    try:
        self.object.delete()
        data = {'success':'ok'}
    except ProtectedError:
        data = {'success':'violation_protected'}
    return HttpResponse(json.dumps(data),mimetype="application/json")

インポートするだけfrom django.db.models.deletion import ProtectedErrorで、魔法が起こります。

于 2013-08-03T13:12:23.980 に答える