Не могу найти решение или ошибку в состоянии jinja
При реализации функции счетчика лайков я столкнулся с тем, что не работает условие отображения разного текста в зависимости от того, есть ли номер "id" пользователя в списке тех, кому уже понравилось это сообщение.
Хотя номер пользователя присутствует в списке пользователей, которым понравилась эта запись, я получаю ответ "not work" красного цвета, из чего можно сделать вывод, что условие {% if user.id in post.likes_list_id %} не работает. Я нашел несколько похожих реализаций, везде это делается похожим образом, но в моем исполнении это не работает
Пожалуйста, помогите найти решение или ошибку
HTML(фрагмент):
{% for posts in current_page.object_list %}
{% if user.is_authenticated %}
<div class="line" style="display: flex; flex-direction: row; align-items: baseline">
{% if user.id in post.likes_list_id %}
<div>
<div style="color: green;"> it works </div>
</div>
{% else %}
<div>
<div style="color: red;"> not work </div>
</div>
{% endif %}
</div>
<div style="padding-left: 10px; color: orange;"> {{user.id}} {{post.likes_list_id}} {{post.likes_list_id.all}} </div>
{% endif %}
{% endfor %}
views.py:
def index(request):
new_post = New_post_form()
db_posts = Post.objects.all()
# just for testing
testing = Post.objects.get(id=2)
foo = testing.likes_list_id()
print(foo)
posts_division = Paginator(db_posts, 10)
requested_page = int(request.GET.get("requested_page", 1))
current_page = posts_division.page(requested_page)
return render(request, "network/index.html", {
"new_post": new_post,
"current_page": current_page,
})
model.py:
class User(AbstractUser):
pass
class Post(models.Model):
user_name = models.ForeignKey(User, on_delete=models.CASCADE)
content = models.TextField()
timestamp = models.DateTimeField(auto_now_add=True)
likes = models.ManyToManyField(User, related_name="likes", blank=True)
def likes_count(self):
return self.likes.count()
def likes_list_id(self):
return self.likes.values_list('id', flat=True)
class Meta:
ordering = ["-timestamp"]
def __str__(self):
return f"{self.pk} - {self.user_name}"
В браузере я получаю следующий результат: [1]: https://i.stack.imgur.com/d9Jik.jpg