Django возвращенный ответ не обновляется в html - PullRequest
0 голосов
/ 20 марта 2020

Я отправляю некоторые раскрывающиеся значения из моих ajax в Django представлений, Django представлений, возвращающих ответ в формате JSON. Значение представляет собой список списка в соответствии с python, поэтому в javascript это массив массивов. Я хочу проанализировать данные, поступающие из представлений Django, и обновить содержимое div в клиентской части.

Это то, что я пробовал до сих пор:

filter.html

<form id="form1" method="POST">
    {% csrf_token %}
    <div classs="container">
        <div class="row">
            <div class="col-lg-5">
                <label for="intent">Intent</label>
                <div class="styled-select blue semi-square">
                    <select name="intent" id="intent-sel">
                        <option value="all">All</option>
                        <option value="opinion">Opinion</option>
                        <option value="complaint">Complaint</option>
                        <option value="suggestion">Suggestion</option>
                        <option value="satisfied">Satisfied</option>
                        <option value="delivery">Delivery</option>
                        <option value="customer_sensitivity_for_pricing">SensitivityForPricing</option>
                    </select>
                </div>
            </div>
            <div class="col-lg-5">
                <label for="product-type">Product Type</label>
                <div class="styled-select blue semi-square">
                    <select name="product_type" id="product-sel">
                        <option value="all">All</option>
                        <option value="condom">Condom</option>
                        <option value="lube">Lubricant</option>
                    </select>
                </div>
            </div>
            <div class="col-lg-5">
                <label for="rating">Rating</label>
                <div class="styled-select blue semi-square">
                    <select name="rating" id="rating-sel">
                        <option value="all">All</option>
                        <option value="1">1 Star</option>
                        <option value="2">2 Star</option>
                        <option value="3">3 Star</option>
                        <option value="4">4 Star</option>
                        <option value="5">5 Star</option>
                    </select>
                </div>
            </div>
            <div class="col-lg-5">
                <label for="brand">brand</label>
                    <div class="styled-select blue semi-square">
                        <select name="brand" id="brand-sel">
                            <option value="all">All</option>
                            <option value="durex">Durex</option>
                            <option value="skore">Skore</option>
                            <option value="kamasutra">KamaSutra</option>
                        </select>
                    </div>
            </div>
        </div>
    </div>
    <div class="buttonHolder">
        <button type="submit" id='upload-button' class="btn btn btn-outline-dark">Filter</button>
    </div>
    </form>
    <div id="content_data">
    </div>
</form>
<script>
        $(document).on('submit', '#form1',function(e){
    $.ajax({
        type:'POST',
        url:'{% url "filter" %}',
        data:{
            intent:$('#intent-sel').val(),
            product_type:$('#product-sel').val(),
            rating:$('#rating-sel').val(),
            brand: $('#brand-sel').val(),
            csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val(),
            action: 'post'
        },
        success:function(json){
            document.getElementById("form1").reset();
            console.log(json);
            $("#content_data").prepend('<div class="col-md-6">'+'<p class="mb-auto">' + "jlksjlf" + '</p>' +
                    '</div>'
            )
        },
        error : function(xhr,errmsg,err) {
        console.log("error:");
        console.log(xhr.status + ": " + xhr.responseText); // provide a bit more info about the error to the console
    }
    });
});
</script>

views.py

def filter(request):
    if request.method == "POST":
        intent = request.POST.get('intent')
        product_type = request.POST.get('product_type')
        rating = request.POST.get('rating')
        brand = request.POST.get('brand')
        data = filter_result(intent, product_type, rating, brand)

        context = {"data": data}

        return JsonResponse(context)
    return render(request, 'filter.html')

Как мне добиться результата?

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