models.py中的类型错误-'str'对象不可调用

时间:2019-07-10 09:26:13

标签: python django django-models

数据迁移后,我想为作者字段分配设置。AUTH_USER_MODELuser.username。

@property
def author(self):
    return self.user.username() #'line-17'

获取:

  / posts /(主页)上的

TypeError   'str'对象不可调用

models.py in author,第17行

2 个答案:

答案 0 :(得分:1)

这应该可以正常工作:

@property
def author(self):
    return self.user.username

用户名是一个字符串,不应像example_method()这样的方法来调用。

答案 1 :(得分:0)

由于username是类中的字符串,因此您不必使用括号:-

@property
def author(self):
    return self.user.username    #'line-17'

如果username是类中的一个函数,则必须使用括号:-

 @property
 def author(self):
     return self.user.username()   # If username is a function.

或者您可以通过callable检查用户名是否起作用:-

callable(self.user.username)

它将返回TrueFalseTrue表示username是一个函数。