17

一般的な関数でドキュメント プロパティを取得しようとしていますが、一部のモデルにはドキュメント属性がない場合があります。モデルにドキュメント プロパティがあるかどうかを最初に確認してから、条件付きでコードを実行する方法はありますか?

  if self.model has property documents:
        context['documents'] = self.get_object().documents.()
4

1 に答える 1

43

hasattr()モデルにドキュメント プロパティがあるかどうかを確認するために使用できます。

if hasattr(self.model, 'documents'):
    doStuff(self.model.documents)

ただし、この回答は、「許可よりも許しを求める方が簡単」なアプローチの方が良いと感じる人もいることを指摘しています。

try:
    doStuff(self.model.documents)
except AttributeError:
    otherStuff()
于 2012-10-16T03:57:05.253 に答える