Форма Django, отправленная с использованием ajax Javascript - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь опубликовать форму из таблицы входных данных. Я получаю только объект None, когда я печатаю filter_list (см. Код). Но когда я проверяю данные из таблицы с помощью функции alert в случае успеха, она возвращает правильное выбранное значение. Я не знаю много о аяксе. Пожалуйста, помогите мне разобраться. Я приложил код для views.py, HTML ниже, В Views.py,

def mytable1(request):
    if request.method == 'POST':
        filter_list = request.POST.get('regionwiselist')
        **print(filter_list)**
        context={'filter_list':filter_list}
        print(context)
        return render(request, 'mytable2.html', context)
    else:
        sbc = MTD.pdobjects.all()
        df = sbc.to_dataframe().reset_index(drop=True)
        df.reset_index(inplace=True)
        dict1=df.transpose().to_dict()
        dict=[]
        for k,v in dict1.items():
            dict.append(v)
        col=list(df1.columns)
        context={
                'Vertical_value':dict,
                'Vertical_header':col
        }
        return render(request, 'mytable2.html', context)

В mytable2.html,

{% extends "base.html" %}
{% block body %}
{% if Vertical_header  %}
<script>
  $(document).ready(function(){
    $("#gridContainer").dxDataGrid({
        dataSource: {{Vertical_value|safe}},
        showBorders: true,
        paging: {
            pageSize: 10
        },
        keyExpr: "RGN",
        showBorders: true,
        selection: {
            mode: "multiple"
        },
        paging: {
            pageSize: 10
        },
        filterRow: {
            visible: true
        },
        pager: {
            showPageSizeSelector: true,
            allowedPageSizes: [5, 10, 20],
            showInfo: true
        },
        columns: {{Vertical_header|safe}},
        showBorders: true
    });
  });
</script>
<div class="demo-container">
  <form id='my_form' method = "POST">
    {% csrf_token %}
      <div id="gridContainer"></div>
      <button type="submit" class="btn btn-primary btn-lg"><i class="fa fa-angle-double-down"></i></button>
  </form>
</div>
<script type="text/javascript">
  $(document).on('submit','#my_form',function data(e){
    var dataGrid = $("#gridContainer").dxDataGrid("instance");
    var selectedKeys = dataGrid.getSelectedRowKeys();
    $.ajax({
        type: 'POST',
        url: '{% url 'mytable1' %}',
        data:{
          regionwiselist:selectedKeys[0].value,
          csrfmiddlewaretoken:$("[name=csrfmiddlewaretoken]").val()
        },
        success: function(){
            alert(selectedKeys);
          }
       });
});
</script>
<script type="text/javascript">
  function data(){
    var dataGrid = $("#gridContainer").dxDataGrid("instance");
    var selectedKeys = dataGrid.getSelectedRowKeys();
    console.log(selectedKeys[0])
  };
</script>
<button onclick="data()" type="button" name="button"></button>
{% else %}
<h2>kd:{{filter_list|safe}}</h2>

{% endif %}

{% endblock %}
...