Django шаблон пользователя в условии queryset
У меня есть следующие модели Post and Follow:
class Post(models.Model):
content = models.TextField()
date_posted = models.DateTimeField(default=timezone.now)
date_modified = models.DateTimeField(auto_now=True)
author = models.ForeignKey(User, on_delete=models.CASCADE)
@property
def followers(self):
return self.follow_set.filter(post=self).values_list('user', flat=True)
class Follow(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
post = models.ForeignKey(Post, on_delete=models.CASCADE)
Я попробовал следующий код в shell для проверки наличия данных в свойстве .followers:
>>> from posts.models import Post
>>> x= Post.objects.get(id=22)
>>> x.followers
<QuerySet [1]>
В конечном итоге я хочу проверить, входит ли аутентифицированный пользователь в число последователей. У меня есть следующий код шаблона:
{% if user in object.followers %}
<a href="#">Unfollow</a>
{% else %}
<a href="#">Follow</a>
{% endif %}
Проблема в том, что {% if user in object.followers %}
всегда оценивается как False. P.S.: Я всегда регистрирую пользователя id=1 (так же, как и результат кверисета выше).
Использовать
{% if user in object.followers.all %}
Неважно. Я только что понял свою ошибку.
{% if user.id in object.followers %}