Комментирование нескольких объектов поста на одной странице с помощью jQuery ajax в Django
Я пытался реализовать функцию комментариев с помощью jQuery ajax в Django, чтобы позволить мне комментировать несколько объектов post на одной странице, но почему-то у меня возникла проблема с выяснением того, почему я получаю повторение одного и того же комментария в других комментариях других объектов post, при комментировании первого поста я отправил комментарий в базу данных без каких-либо проблем, но когда я пытаюсь прокомментировать второй пост на той же странице, он повторяет первый комментарий для второго поста на той же странице, даже если комментарий не относится к этому объекту post. Чтобы быть ясным, почему ajax повторяет мой комментарий для другого объекта поста, и если я обновляю пост и пытаюсь прокомментировать другой объект поста, он отправляет пустой пост в базу данных, как мне разрешить эту ситуацию, поскольку когда я комментирую первый объект, он работает нормально, но когда я пытаюсь со вторым объектом поста, он просто повторяет первый комментарий для второго объекта поста.
My view for comment
def feedComment(request):
if request.method == 'GET':
post_id = request.GET['id']
comment = request.GET['comment_text']
post_obj = Post.objects.get(id=post_id)
create_comment = Comment.objects.create(post=post_obj, username=request.user, comment=comment)
create_comment.save()
return JsonResponse({'comment':create_comment.comment,})
моя ajax функция для комментария
<script type="text/javascript">
function ajax($this) {
var id = $this.attr("id");
var ul_menu =$('#menu');
var comment = $('#comment').val();
$.ajax({
method: "GET",
url: '{% url "feed:addcomment" %}',
dataType: "json",
data: {
comment_text: comment,
id: id,
},
success: function (data) {
if(data.comment)
{
var comment_res = $this(data.comment);
var div_html = ('<div class="flex" ><div class="w-10 h-10 rounded-full relative flex-shrink-0"><img src="{{request.user.profile_image.url}}" alt="" class="absolute h-full rounded-full w-full"></div><div class="text-gray-700 py-2 px-3 rounded-md bg-gray-100 relative lg:ml-5 ml-2 lg:mr-12 dark:bg-gray-800 dark:text-gray-100"><p class="leading-6">'+comment_res+'</p><div class="absolute w-3 h-3 top-3 -left-1 bg-gray-100 transform rotate-45 dark:bg-gray-800"></div></div></div>');
ul_menu.prepend(div_html);
}
}
});
}
</script>
Форма для комментариев
.....
<div class="border-t py-4 space-y-4 dark:border-gray-600" id="menu">
{% for comment in post.comments.all %}
{% if forloop.counter|divisibleby:2 %}
<img src="{{comment.username.profile_image.url}}" alt="{{comment.username.profile_image.url}}" class="absolute h-full rounded-full w-full"></div>
<div>
<div class="text-gray-700 py-2 px-3 rounded-md bg-gray-100 relative lg:ml-5 ml-2 lg:mr-12 dark:bg-gray-800 dark:text-gray-100">
<p class="leading-6"> {{comment.comment}} <i class="uil-grin-tongue-wink-alt"></i> </p>
<span> {{ comment.comment_date|timesince }} </span></div></div></div>
{% endif %}
{% endfor %}
....
<input class="material-icons" id="{{post.id}}" type="submit" value="Comment" onclick="ajax($(this));return false;">
```