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 回答