Как передать логическое значение для каждого сообщения в моем представлении функций? - PullRequest
0 голосов
/ 14 марта 2020

Мой 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...