【问题标题】:Cannot receive data in Django View from frontend through Ajax无法通过 Ajax 从前端接收 Django View 中的数据
【发布时间】:2018-06-12 05:56:16
【问题描述】:

我正在尝试将数据从前端发布到 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'),

]

【问题讨论】:

    标签: ajax django post


    【解决方案1】:

    您的视图正在返回数据。但是您的 Ajax 成功函数会忽略该数据,然后将 another 请求发送到不带参数的同一 URL。不要那样做。使用返回的数据。

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

    【讨论】:

    • 亲爱的丹尼尔,非常感谢您的帮助!这解决了我的问题,为我节省了很多时间!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多