В настоящее время я изучаю Django и создаю приложение для Twitter.
Я использовал ManyToManyField в своей модели профиля, чтобы отразить подписчиков следующим образом:
models.py
class Profile(models.Model):
"""
Extension of User model to save additional information
"""
user = models.OneToOneField(User, on_delete=models.CASCADE)
bio = models.TextField(max_length=500, blank=True)
followers = models.ManyToManyField('self', related_name='Followers', blank=True, symmetrical=False)
follower_count = models.IntegerField(default=0)
following_count = models.IntegerField(default=0)
Теперь я пытаюсь проверить, является ли пользователь уже следующий пользователь (при открытии профиля, чтобы я мог отобразить там правильную кнопку «следовать / отменить подписку»)
views.py
def profile(request, username):
try:
user = User.objects.get(username=username)
user_profile = Profile.objects.get(user_id=user.id)
except ObjectDoesNotExist:
raise Http404("User does not exist")
is_following = True if user.id in Profile.followers.all() else False
return render(request, 'songapp/profile.html', {'user_profile': user_profile,
'user' : user,
'is_following': is_following})
Проблема заключается в
Profile.followers.all()
Когда я получаю следующее AttributeError:
'ManyToManyDescriptor' object has no attribute 'all'
Я уже использовал функцию поиска и читал результаты до 8 лет, но я либо не нашел, либо не понял соответствующий ответ.
Любая помощь высоко ценится
РЕДАКТИРОВАТЬ: изображение модели