关于python:django如何检查对象在视图中是否具有属性

Django how to check if the object has property in view

我试图在常规函数中获取documents属性,但一些模型可能没有documents属性。有没有办法首先检查模型是否具有documents属性,然后有条件地运行代码?

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


您可以使用hasattr()检查模型是否具有documents属性。

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

然而,这个答案指出,有些人认为"请求宽恕比许可更容易"的方法是更好的实践。

1
2
3
4
try:
    doStuff(self.model.documents)
except AttributeError:
    otherStuff()