Ajax中的Phantom Brackets在向Django发送数组时调用

时间:2017-06-04 18:10:35

标签: javascript jquery ajax django

我正在尝试通过Ajax调用发送一个普通的javascript数组,并且发生了一些奇怪的事情。

这是我的功能:

// Save new Strategy
$('.tab-pane').on('click', 'button.saveStrat', function() {

      var stratType = $('#typeValue').val();   // Set by newEntry method in swot-nav.js
      var label = $('#newStratLabel').val();           // Form element in new_swot_modal.html
      var details = $('#newStratDetails').val();       // Form element edit_swot_modal.html
      var entries = [];

      // Build a list of SWOT entries that the user has identified as associated to this strategy.
      $('input.entryCheckbox[type=checkbox]').each(function () {
           if (this.checked) {
               entries.push($(this).val());
           }
         });

      console.log(entries);

      $.ajax({
          url: '/add_swot_strategy/',
          type: "POST",
          data: {
              'type': stratType,
              'label': label,
              'details': details,
              'entries': entries
          },

          dataType: 'json',
          success: function (data) {
              appendNewItem(data, swotType)
          }
      });

      resetAddForm()

  });

以下是我的Django测试服务器收到它的方式:

<QueryDict: {'label': [''], 'type': ['A'], 'details': [''], 'entries[]': ['16', '23', '26']}>

entries标签后的额外括号是什么?这是预期的行为吗?

我可以继续这样做,还是违反规定?

1 个答案:

答案 0 :(得分:0)

这是预期的行为。

https://github.com/django/django/blob/master/django/utils/datastructures.py

获取列表数据:request.POST.getlist('entries')