1. ホーム
  2. python

[解決済み] Django のカスタムマネージャで DoesNotExist 例外をキャッチする

2023-08-02 06:39:52

質問

Djangoのモデル用のカスタムマネージャを持っています。私はここでDoesNotExist例外をキャッチすることができないようです。私はモデル内部でそれを行う方法を知っていますが、ここでは動作しませんでした。

class TaskManager(models.Manager):
    def task_depend_tree(self, *args, **kwargs):
        if "id" in kwargs:
            try:
                task = self.get(id=kwargs["id"])
            except DoesNotExist:
                raise Http404

Get_object_or_404もうまくいきません。 何が間違っているのでしょうか?

どのように解決するのですか?

以下のいずれかの方法を試してみてください。 ObjectDoesNotExist の代わりに DoesNotExist または、場合によっては self.DoesNotExist . もし他のすべてが失敗したら、バニラの Exception をキャッチし、それを評価することでtype()を確認します。

from django.core.exceptions import ObjectDoesNotExist