Показ двух кнопок like (выполняются оба варианта if и else)
Я создаю простой сайт вопросов и ответов, в котором я реализую простую кнопку like, поэтому я сделал другую модель для like ответа.
Но он показывает две кнопки "нравится", когда мне нравится сообщение.
models.py
class Question(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=900)
class Answer(models.Model):
question_of = models.ForeignKey(Question, on_delete=models.CASCADE)
answer_by = models.ForeignKey(User, on_delete=models.CASCADE)
body = models.CharField(max_length=900)
class AnswerLike(models.Model):
answer_of = models.ForeignKey(Answer, on_delete=models.CASCADE)
liked_by = models.ForeignKey(User, on_delete=models.CASCADE)
views.py
def question_detail(request, question_id):
post = get_object_or_404(Question, pk=question_id)
answers = post.answer_set.all()
context = {'post':post, 'answers':answers}
return render(request, 'question_detail.html', context)
def answer_like(request, answer_id):
answer = get_object_or_404(Answer, pk=answer_id)
if request.GET.get('submit') == 'like':
save_like = AnswerLike.objects.create(answer_of=answer, liked_by=request.user)
return JsonResponse({'liked':'liked'})
question_detail.html
{{post}}
{% for ans in answers %}
{{ans.body}}
{% for likes in ans.answerlike_set.all %}
<form method="GET" class="AnswerLike" action="{% url 'answer_like' ans.id %}">
{% if request.user == likes.liked_by %}
<button name='submit' type='submit' value="UnLike"><i class="fas fa-thumbs-up"></i>Liked</button>
{% else %}
<button name='submit' type='submit' value="Like"><i class="far fa-thumbs-up"></i>
Not Liked</button>
{% endif %}
{% empty %}
<button name='submit' type='submit' value="Like"><i class="far fa-thumbs-up"></i>
Not Liked</button>
{% endfor %}
</form>
{% endfor %}
Я знаю, что я использую if statement
как Если пользователю понравился пост, то показать иконку понравившегося поста и в else statement
Если запрос.пользователю не понравился пост, то показать пустую иконку понравившегося поста
и empty statement
если пост никому не понравился, то покажите blank like button
Так я думаю :- Он выполняет оба оператора if
и else
, и я не знаю, как я могу использовать только один за раз.
Любая помощь будет очень признательна. Спасибо