Я пытаюсь сделать клон Twitter.Отношение «многие ко многим» с самим собой не может использовать связанный атрибут имени
Приложение имеет ряд пользователей, каждый из которых имеет профиль пользователя. Модель UserProfile выглядит следующим образом
class UserProfiles(models.Model):
authenticated_user = models.OneToOneField(User, related_name="user_profile")
handle = models.CharField(max_length=50)
display_name = models.CharField(max_length=50)
following = models.ManyToManyField("self", related_name="followers", null=True)
def __str__(self):
return self.authenticated_user.handle
«Следующий» атрибут является многим-ко-многим с UserProfiles, так как каждый профиль пользователя может следовать многим другим профилям, и многие профили могут быть следующими другим профилем.
Если у меня есть экземпляр UserProfiles, мы будем называть его current_user, я могу найти, сколько профилей он следующий, делая
current_user.following.count
Я также хочу, чтобы иметь возможность сообщить пользователю, сколько людей Следуя за ними. Поскольку related_name аргумент установлен в «последователей», кажется разумным, что я могу получить количество последователей, делая
current_user.followers.count
Это, однако, возвращает ошибку, «объект„UserProfiles“не имеет атрибута„последователей“ "
Почему я не работаю? Что я могу сделать вместо этого?
Вы запустили 'makemigrations' и' migrate' после добавления 'related_name'? –