Ошибка типа в models.py - объект 'str' не вызывается - PullRequest
0 голосов
/ 10 июля 2019

После переноса данных я хочу назначить settings.AUTH_USER_MODEL user.username полю автора.

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

получение:

TypeError at / posts / (домашняя страница) Объект 'str' не может быть вызван

models.py в авторе, строка 17

Ответы [ 2 ]

1 голос
/ 10 июля 2019

Это должно работать нормально:

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

имя пользователя является строкой и не должно вызываться как метод, подобный example_method().

0 голосов
/ 10 июля 2019

Поскольку 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)

Возвращает True ИЛИ False, True означает, что username является функцией.

...