Как я могу динамически обновлять мои объекты в шаблоне? - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть комментарии к продукту на странице. и есть кнопка для добавления комментария, которая помещает новый комментарий в базу данных. Как автоматически отобразить новый комментарий на странице?

mytemplate.html

<div id="comments">
{% include 'comments.html' %}
</div>

comments.html

{% for comment in comments %}
        <!-- some code for display comments -->
{% endfor %}

script.js

$("#addComment").on("click", function(e){
        e.preventDefault()
        if ($("#addCommentArea").val() != ""){
            data = {
                commentText: $("#addCommentArea").val(),
                product_id: "{{ product.id }}"
            }
            $.ajax({
                type: "GET",
                url: "{% url 'newcomment' %}",
                datatype: 'json',
                data: data,
                success: function(data){
                    $("#addCommentArea").val("")
                }
            })
        }
    })

views.py

class CommentView(View):
    def get(self, request):
        commentText = request.GET.get("commentText")
        if (len(commentText) > 0):
            newComment = Comment()
            newComment.Author = request.user
            product_id = request.GET.get("product_id")
            product = Product.objects.get(id=product_id)
            newComment.Product = product
            newComment.Comment = commentText
            newComment.save()
        return JsonResponse({'ok': 'ok'})

1 Ответ

0 голосов
/ 01 ноября 2019

В настоящее время вы просто визуализируете шаблон один раз и получаете комментарии, далее вы используете Ajax для отправки, что означает, что ваш шаблон не обновляется. Чтобы обновить комментарии без обновления страницы, вы можете либо выполнить опрос javascript, либо использовать, например, веб-сокеты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...