无法从django

时间:2016-02-23 08:36:45

标签: jquery json ajax django django-views

我有一个品牌和类别列表。一个品牌可以有多个类别。

这是html

    {% for brand in brands %}
                <li><input type="radio" value="{{brand.title}}" name="brand">{{brand.title}}</li>
     {% endfor %}

              {% for category in categories %}
                <li><input type="checkbox" value="{{category.title}}" name="category" > {{category.title}}</li>
              {% endfor %}

<input type="submit" value="submit" id="brand_category">

这是脚本

$('#brand_category').click(function(event){
        $("input:checkbox[name=category]:checked").each(function(){
          if($(this).prop("checked",true)){
            category.push($(this).val())
          }
        });
        parameter.push({
          brand :   $("input[type='radio']:checked").val(),
          category: category
        })

        var json = JSON.stringify(parameter);


        $.ajax({        
              type: "post",
              url: "{% url 'seller_details' %}",
              data: { 'parameter[]' : json , csrfmiddlewaretoken:'{{csrf_token}}'},
              contentType: 'application/json; charset=utf-8',
              dataType:"json",
              success: function(data) {
                $('#loading-image').hide();
              },
              error: function(response, error) {
              }
          });
      });

这是视图

list_data = self.request.POST.get('parameter[]')
print list_data

我正在获取这样的数据

[{"brand":"dp","category":["men","women"]}]

我如何从上面的格式收集django中的数据。到目前为止,我一直在获取数据方面不成功。 我尝试使用list_data['brand'],但它打印时出现以下错误

string indices must be integers

然后我尝试了

list_data = self.request.POST.getlist('parameter[]')

它引发了以下错误

list indices must be integers, not str

我能做什么。需要帮助。谢谢你

1 个答案:

答案 0 :(得分:1)

因为你有一个包含单个字典的列表,你可以像这样访问dict值:

list_data = json.load(list_data)
list_data[0]['brand']
list_data[0]['category']