带参数的Django模型属性

时间:2018-01-25 06:10:08

标签: python django properties

我在Django中有以下模型。

class User(models.Model):
    name = models.CharField(max_length=50)
    ...
    ...

    @property
    def get_info(self, key=None):
        value = self.name if key else 'Hello World'
        return value

但是当我尝试在Django shell中执行代码时,我收到以下错误。

n [4]: user = User.objects.get(id=1)
n [5]: user.get_info(key='test_key')
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-5-f7b917070aee> in <module>()
----> 1 user.get_info(key='test_key')

TypeError: _get_info() takes exactly 2 arguments (1 given)

1 个答案:

答案 0 :(得分:4)

只需移除@property装饰器即可。如果您需要接受参数,那么它不是属性。