我在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)
答案 0 :(得分:4)
只需移除@property
装饰器即可。如果您需要接受参数,那么它不是属性。