【问题标题】:Serialized Data Displaying Letter by Letter Django按字母显示字母的序列化数据 Django
【发布时间】:2020-07-27 20:04:22
【问题描述】:

我正在学习使用 JSON,因此我正在运行一个简单的示例来在我的模板中为我的 django 模型中的每个对象创建一个列表项。我的输出如下所示:

所以我希望每个<li> 只显示名称中的实际值。我该如何修改我的代码来实现这一点?

views.py

def Ajax(request):
    if request.is_ajax():
        exporter = serializers.serialize("json", Proforma.objects.all())
        print(exporter)
        data = json.dumps(exporter)
        return HttpResponse(data, content_type='application/json')
$("#populate").click(function() {

  $.ajax({
    url: "/ajax/more",
    success: function(data) {
      for(i = 0; i < data.length; i++){
        $('ul').append('<li>'+data[i]+'</li>');
      }
    }
  });
});

编辑:

这是控制台的输出:

(index):739 [{"model": "Poseidon.proforma", "pk": 24, "fields": {"Name": "greg", "Shipment": 4, "Exporter": "greg", "QuoteNo": "jiojo", "Date": "ijoi", "Consignee": 10, "MethodOfDispatch": "ujhiuh", "TypeOfShipment": "iuhiu", "PortOfLoading": "huyg", "PortOfDischarge": "uioj", "Terms": "iugh", "ProductCode": "utyg", "DescriptionOfGoods": "iuhi", "UnitQty": "ug", "UnitType": "t", "Price": "iuh", "Amount": "iy", "BankDetails": "guyt", "AdditionalInfo": "gy", "InvoiceTotal": "tf", "Place": "uyg", "SignatoryCompanyBuyer": "uyf", "SignatoryCompany": "utfy", "NameSignerBuyer": "guyg", "NameSigner": "uy", "SignatureBuyer": "fy", "Signature": "trf", "CreatedBy": "uyg"}}]

【问题讨论】:

  • 请尝试在 ajax 中记录数据并附加到您的问题中
  • 抱歉不完全确定您记录数据的意思 - 请您为我澄清一下
  • console.log(data); 在 ajax 响应中登录到 chrome 中的开发人员工具并使用结果编辑您的问题
  • 好的添加在上面 - 这就是我的想法,但不确定。谢谢。
  • 你不能在&lt;li&gt;标签中打印整个对象,请尝试修复它

标签: python json django ajax


【解决方案1】:

问题在于 ajax,因为您无法在 li 标签中打印整个对象:

试试这个(会在li标签上打印“Poseidon.proforma”):

$("#populate").click(function() {

  $.ajax({
    url: "/ajax/more",
    success: function(data) {
      var data = JSON.parse(data); // parse the string response to JSON
      for(i = 0; i < data.length; i++){
        $('ul').append('<li>'+data[i]["model"]+'</li>');
      }
    }
  });
});

如果您想了解问题,我认为w3schools 可能会有所帮助

【讨论】:

  • 好的,我试过了,但现在它只是在大量 li 标签上打印“未定义”
  • 对不起,您应该将响应从字符串解析为 JSON,现在它应该可以工作了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多