我试图在一般函数中获取文档属性,但是一些模型可能没有文档属性。有没有办法首先检查模型是否具有documents属性,然后有条件地运行代码?
if self.model has property documents:
context['documents'] = self.get_object().documents.()
答案 0 :(得分:27)
您可以使用hasattr()
检查模型是否具有文档属性。
if hasattr(self.model, 'documents'):
doStuff(self.model.documents)
然而,this answer指出有些人认为“更容易请求宽恕而不是许可”是更好的做法。
try:
doStuff(self.model.documents)
except AttributeError:
otherStuff()