如何将django模型方法转换为参数?

时间:2013-09-18 17:18:26

标签: python django

我想将方法​​has_access_token添加到django模型中...如何将其转换为参数?

意思是如果我在Person模型中有以下方法:

def has_access_token(self):
    return True

person = Person.objects.get(user=user)

我希望能够做到:

if person.has_access_token:

不添加括号:(),如person.has_access_token()

1 个答案:

答案 0 :(得分:2)

使用property

@property
def has_access_token(self):
    return True

>>> class MyModel:
...     def has_access_token_1(self):
...         return True
...     @property
...     def has_access_token_2(self):
...         return True
... 
>>> 
>>> obj = MyModel()
>>> obj.has_access_token_1
<bound method MyModel.has_access_token_1 of <__main__.MyModel instance at 0x7f07ed881ea8>>
>>> obj.has_access_token_2
True