Мой views.py
def problems_list(request):
queryset = Post.objects.filter(created__range=['2020-03-01', '2020-03-31'])
def is_liked(self):
#if currently logged on user has already liked the post then
is_liked = True
#else
is_liked = False
context = {
'posts': queryset,
'is_liked': is_liked
}
return render(request, 'main/problem.html', context)
Мой model.py
class Post(models.Model):
likes = models.ManyToManyField(User, related_name='likes', blank=True, default=None)
В каждом посте я хочу проверять, понравился ли пользователь посту, и если он его получил, то передайте Булева переменная привязана к этому посту, чтобы он показывал, что ему понравилось. Я не уверен, как добавить переменную, которая связана с каждым сообщением. Я читал некоторые и увидел, что мне может понадобиться вторая модель для моих симпатий. Это лучший вариант?
Я могу запустить это в оболочке для одного сообщения, но я хочу иметь возможность вызывать его для всех сообщений.
In [1]: from main.models import Post
In [2]: from django.contrib.auth.models import User
In [3]: user = User.objects.first()
In [4]: post = Post.objects.first()
In [5]: post.likes.all()
Out[5]: <QuerySet [<User: user1>, <User: user2>, <User: user3>]>
In [6]: post.likes.filter(username = user).exists()
Out[6]: True