ИМХО проверка того, нравится ли пользователю Post
или нет, это то, что нужно сделать в представлении.
Глядя на ваше сообщение, я думаю, что вы отображаете список Posts
в своем шаблоне, где каждый элемент либо понравился, либо не понравился пользователю. Что вы можете сделать, так это аннотировать каждое сообщение с этой информацией в представлении, а затем использовать эту информацию в своем шаблоне. Например,
#views.py
from django.db.models import OuterRef, Exists
def list_posts(request):
user = request.user
my_likes = PostLikes.objects.filter(
post = OuterRef('pk'),
like_by = user
)
posts = Post.objects.annotate(like_by_user=Exists(my_likes))
context = {'posts': posts}
return render(request, 'yourtemplate.html', context)
И тогда в вашем шаблоне вы можете сделать
<a class="post-like-btn" href="#" {% if i.like_by_user %} style="color: #e16a70;" {% else %} style="color:#b2b2b2 !important;" {% endif %}