Django : в поле ManyToManyField как я могу найти, существует ли связь?

Я создаю систему правды для моего проекта PoopFacts, где люди могут голосовать за True, False или удалить свой голос.

У меня работает система голосования, но Я пытаюсь заставить кнопку менять цвет, чтобы показать, проголосовали ли они уже за True или False или сняли свой голос.

Я показываю код кнопки "Like", потому что он проще и использует ту же логику.

.models
PoopFact(models.Model):
    likes = models.ManyToManyField(User, related_name='likes')
.views
def home(request):
    poopfacts = PoopFact.objects.all().order_by('-date')
    context = {'form': form, 'poopfacts':poopfacts,}
    return render(request, 'home.html', context)

Идея примерно такая

html
{% for poopfact in poopfacts %}
{% if poopfact.likes.user.exists() %}
        <button type="submit" class="btn btn-primary btn-block">Like</button>
        {% else %}
        <button type="submit" class="btn btn-block">Like</button>
        {% endif %}

Так что если им понравилось, кнопка будет синей, и если они нажмут на нее снова, это снимет их голос и сделает его нормальным.

Есть ли у кого-нибудь хорошая идея, как заставить это работать? Я столько всего перепробовал, но безуспешно.

enter image description here

в html

{% for poopfact in poopfacts %}
  {% if user in poopfact.likes.all %}
    <button type="submit" class="btn btn-primary btn-block">Like</button>
  {% else %}
    <button type="submit" class="btn btn-block">Like</button>
  {% endif %}
{% endfor %}
Вернуться на верх