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,
}