Django Использование атрибута объекта queryset

Я создаю область комментариев/сообщений для своей страницы. и создаю кнопки для них тоже. Когда пользователь заходит на страницу, я хочу показать ему кнопку Like по умолчанию (Like или Unlike). Если пользователь находится в списке понравившихся, я хочу показать ему кнопку Unlike, но Я хочу показать кнопку Like, если его нет в списке, то есть если он еще не понравился.

Просмотров:

def detail_post(request,_detail):
   postDetail =  UserPosts.objects.get(pk = _detail) #This is post
   messages = UserMessages.objects.all().filter(post_id =postDetail.id) #This is comment of post

   # I tried this but iit is not works
   for x in messages:
      total = x.like_message.all()
      print(total)    
   context= {
    "detail":postDetail,
    "messages":messages,
   }

Шаблон:

{% for message in messages %}
     {% if message.username_id == request.user.id %}
           <button class="btn btn-primary btn-sm" title="You can't like your message" disabled >Like</button>
     {% else %}
          <button class="btn btn-primary btn-sm text-white btn-like {{ message.id }} " type="submit" name="usermessages_id"
          value="{{ message.id }}" id="{{ message.id }}"> Like </button>
      {% endif %}
{% endfor %}

Вот вывод цикла for, который я написал в файле Views:

  <QuerySet [<User: vahandag>]>
  <QuerySet [<User: vahandag>, <User: GladyaTH0R>, <User: user2>, <User: user3>, <User: vahandag1905>]>
  <QuerySet []>
  <QuerySet []>
  <QuerySet [<User: vahandag1905>]>
  <QuerySet [<User: vahandag1905>]>
  <QuerySet [<User: vahandag>]>

А я хочу вот это:

{% if message.username in message.like_message.all() %}
      <button> Unlike </button>
{% else %}
      <button> Like </button>
{% endif %}

У кого-нибудь есть идея?

Попробуйте это

{% if message.username in message.like_message.all %}
      <button> Unlike </button>
{% else %}
      <button> Like </button>
{% endif %}

В движке шаблонов не обязательно заканчивать методы символом '()'

попробуйте это

def detail_post(request,_detail):
    postDetail =  UserPosts.objects.get(pk = _detail) 
    messages = UserMessages.objects.all().filter(post_id=postDetail.id).values() 
    #This is comment of post

    # I tried this but iit is not works
    for x in messages:
        total = x.like_message.all()
        print(total)    
        context= {
           "detail":postDetail,
           "messages":messages,
           }
Вернуться на верх