Django-contrib-comments не удается получить аутентифицированного пользователя
Я сейчас реализую django-contrib-comments и представление post_comment
не может определить текущего аутентифицированного пользователя (говоря моими новичковыми словами). Я прикрепил форму комментариев к моему объекту poller
, который сам имеет внешний ключ к моей модели пользователя Account
.
AttributeError at /comments/post/
У объекта 'Account' нет атрибута 'get_full_name'
class Poller(models.Model):
poller_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
created_by = models.ForeignKey(Account, on_delete=models.CASCADE)
[..]
Представление post_comment
здесь не работает:
def post_comment(request, next=None, using=None):
data = request.POST.copy()
if request.user.is_authenticated:
if not data.get('name', ''):
data["name"] = request.user.get_full_name() or request.user.get_username() # fails here
Моя пользовательская модель пользователя унаследована от AbstractBaseUser
:
class Account(AbstractBaseUser):
email = models.EmailField(verbose_name='email', max_length=60, unique=True)
username = models.CharField(max_length=40, unique=True)
[..]
AbstractBaseUser
удаляет метод get_full_name
, поэтому вы должны сделать это самостоятельно. Что-то вроде этого:
class Account(AbstractBaseUser):
email = models.EmailField(verbose_name='email', max_length=60, unique=True)
username = models.CharField(max_length=40, unique=True)
[...]
def get_full_name(self):
return f'{self.first_name} {self.last_name}'