无法从前端通过Ajax接收Django View中的数据

时间:2018-06-12 05:56:17

标签: ajax django post

我正在尝试将数据从前端发布到Django视图,并在另一个页面内呈现视图,但我没有从前端收到任何数据。任何帮助表示赞赏!提前谢谢。

Jquery的:

 <script>
            window.getDisplayConfirmation = function(ele){
                   var row = $(ele).closest('tr');
                   var displayObjectId1 = row.find('td').eq(2).text()
                   console.log(typeof(displayObjectId1))
                   console.log(displayObjectId1)
                   var displayObjectId = parseInt(displayObjectId1)
                   $.ajax({

                     url:'/detailedData/',
                     data: {
                       'displayObjectId': displayObjectId
                            },

                    success: function(){
                        alert('Vote successful!');
                        $("#dataDisplayArea").load("/detailedData/");
                        },
                        });
                    };

        </script>

查看:

def detailedData(request):
    displayObjectId = request.GET.get('displayObjectId')
    displayObjects = TemporaryModel.objects.get(id=displayObjectId)
    return render(request, 'frontend/detailedData.html', {'obj': displayObjects,"receivedObjectId":displayObjectId})

HTML: 这是我在这个html页面中的表格的一部分

       <td ><button id = "showButton" class ="btn btn-primary btn-xs" onclick="getDisplayConfirmation(this)"> S </button></td>
      <td ><button id = "deleteButton" class = "btn btn-primary btn-xs" onclick="getDeleteConfirmation(this)"> D</button></td>
      <td >{{ obj.id}}</td>

我也在同一个html页面上有这个部分,包括渲染页面作为子页面:

  <div id ="dataDisplayArea">
        {% include 'frontend/detailedData.html' %}
    </div>

网址:

urlpatterns = [
    path('', auth_views.login, {'template_name': 'registration/login.html'}, name='login'),
    path('panelOne/', views.panelOne, name='panelOne'),
    path('panelTwo/', views.panelTwo, name='panelTwo'),
    path('detailedData/', views.detailedData, name='detailedData'),
    path('panelThree/', PanelThreeView.as_view(), name='panelThree'),

]

1 个答案:

答案 0 :(得分:0)

您的观点正在返回数据。但是,您的Ajax成功函数会忽略该数据,然后将另一个请求发送到没有参数的同一URL。不要这样做。使用返回的数据。

success: function(data){
    alert('Vote successful!');
    $("#dataDisplayArea").html(data);
},