Я сделал веб-приложение, где я могу публиковать изображения, и другие пользователи могут дать подобное.Но если ему уже понравился пост, то он будет красным, и при повторном нажатии он будет отличаться от поста, а если пользователю не понравился пост, то он будет зеленым, и нажатие кнопки приведет к тому, что посту понравится.Мне нравится и не нравится функция, но я не могу изменить цвет кнопки в соответствии с логикой.В django мы не можем передать словарь в redirect('urlname')
. Так есть ли какой-нибудь способ сделать мою кнопку зеленой или красной в соответствии с данной логикой?Коды
Это HTML-файл
{% extends 'navbar-footer.html'%}
{% block content %}
<style>
.btn-like{
color: green;
}
.btn-dislike{
color: red;
}
</style>
<h1>{{button}}</h1>
<h4>This is item number {{item.id}}</h4>
<h4>{{ item.title }}</h4>
<h4>{{ item.body }}</h4>
<button type="button" class="btn {{button}}" onclick="javascript:{document.getElementById('increase_like').submit()}">Like {{item.likes}}</button>
<form action="{%url 'increase_like' item.id%}" method="POST" id='increase_like' >
{% csrf_token %}
<input type="hidden" name="" id="">
</form>
<img src="{{item.image.url}}" alt="">
{% for user in voter.voter.all %}
<h1>{{user.username}}</h1>
{% endfor %}
{% endblock %}
Views.py
def likes(request, item_id):
voter_id = Vote.objects.filter(item_product_id=item_id, voter=request.user)
if voter_id.exists():
voter_obj = get_object_or_404(Vote, item_product_id=item_id)
voter_obj.voter.remove(request.user)
item = get_object_or_404(Item_Product, pk=item_id)
item.likes = voter_obj.voter.count()
item.save()
voter_obj.save()
return redirect('/products/item_Products/'+str(item_id))
elif voter_id.exists() == False:
voter_obj = get_object_or_404(Vote, item_product_id=item_id)
voter_obj.voter.add(request.user)
item = get_object_or_404(Item_Product, pk=item_id)
vote_count = item.likes
item.likes = voter_obj.voter.count()
item.save()
voter_obj.save()
return redirect('/products/item_Products/'+str(item_id))