Пустой тег не работает с кнопкой like
Я новичок в Django. Я создаю простой сайт вопросов и ответов, и я реализую функцию like answer, поэтому я сделал модель Like Answer
, но она не работает только в if else
в шаблоне, поэтому я добавил тег empty
Но кнопка не нравится ответ.
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">Liked</button>
{% else %}
<button name='submit' type='submit' value="Like">Not Liked</button>
{% endif %}
{% empty %}
<button name='submit' type='submit' value="Like">Not Liked</button>
{% endfor %}
</form>
{% endfor %}
Когда я сохраняю лайк от другого пользователя из админки, то он ставит лайк request.user
, но когда ответ никому не нравится, то утверждение empty
должно работать, но оно не работает.
Кнопка Like успешно отображается через тег empty
, но не работает.
Я пробовал удалить оператор else
, но он все равно не работает.
Я буду очень признателен за вашу помощь. Спасибо