Показ двух кнопок 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, и я не знаю, как я могу использовать только один за раз.

Любая помощь будет очень признательна. Спасибо

Вернуться на верх