На странице профиля пользователя я отображаю посты и комментарии людей, за которыми следит пользователь. Я хочу проверить и отобразить как символ для постов и комментариев, понравившихся пользователю. Как лучше всего проверить, нравится ли пользователю публикация и комментарий в шаблоне?
Модель сообщения:
class Post(models.Model):
author = models.ForeignKey(CustomUser,on_delete=models.CASCADE,)
title = models.CharField(max_length=200,null=True)
text = models.TextField()
created_date = models.DateTimeField(default=timezone.now)
published_date = models.DateTimeField(blank=True, null=True)
slug = models.SlugField(unique=True, blank=True)
nLikes = models.IntegerField(default= 0)
Модель комментария:
class Comment(models.Model):
post = models.ForeignKey('Post', related_name='comments',on_delete=models.CASCADE,)
author = models.ForeignKey(CustomUser,on_delete=models.CASCADE,)
text = models.TextField()
created_date = models.DateTimeField(default=timezone.now)
slug = models.SlugField(unique=True, default=uuid.uuid4)
nLikes = models.IntegerField(default= 0)
Опубликовать как модель :
class PostLike(models.Model):
post = models.ForeignKey('Post', related_name='related_post',on_delete=models.CASCADE,)
user = models.ForeignKey(CustomUser,on_delete=models.CASCADE,)
liked_date = models.DateTimeField(default=timezone.now)
комментарий как модель:
class CommentLike(models.Model):
comment = models.ForeignKey('Comment', related_name='related_comment',on_delete=models.CASCADE,)
user = models.ForeignKey(CustomUser,on_delete=models.CASCADE,)
liked_date = models.DateTimeField(default=timezone.now)
мой шаблон будет похож на это. Я добавляю упрощенную версию здесь, чтобы упростить задачу
{% for post in post_queryset %}
<div>
{{ post.text }}
</div>
{% for comment in post.comments.all %}
</div>
{{ comment.text }}
</div>
{% endfor %}
{% endfor %}
Каков наилучший способ проверить, нравится ли пользователю публикация и комментарий? Я думаю об использовании тегов шаблонов, есть ли лучший способ?