Как в Django ListView через orm обратится к конкретному экземпляру модели?
мне нужно реализовать проверку, есть ли у конкретного поста и текущего юзера записи в таблице Vote
, если есть записи, то нужно узнать какое значение в столбце vote
таблицы Vote
(0 не нравится, 1 нравится). Я при помощи этого в шаблоне устанавливаю на палец вверх или палец вниз активный стиль css.
Я это реализовал в DetailView
, но столкнулся с проблемой в ListView
, так как не могу получить id поста.
Мой код:
Модель:
class Vote(models.Model):
post = models.ForeignKey(Post,
related_name='postid',
on_delete=models.CASCADE,
default=None,
blank=True)
user = models.ForeignKey(CustomUser,
related_name='userid',
on_delete=models.CASCADE,
default=None, blank=True)
vote = models.BooleanField(default=True)
Метод, который я пытаюсь использовать в ListView
context:
def get_vote(self):
votes = Vote.objects.filter(user=self.request.user.id, post=post)
if len(votes) == 0:
return 'not_vote'
if len(votes) == 1:
if votes[0].vote == 0:
return 'down'
if votes[0].vote == 1:
return "up"
else:
raise TypeError('Ошибка в Vote')
context['vote'] = get_vote(self)
Я новичок в Django, буду рад помощи.
Источник: Stack Overflow на русском