【问题标题】:Django Doesn't Serialize id of the modelDjango 不序列化模型的 id
【发布时间】:2018-03-21 21:44:03
【问题描述】:

我有一个简单的课程:

class Item(models.Model):
     name = models.CharField(max_length=250)

我需要将其序列化为 JSON,并将 ID 作为 JSON 的一部分,但在视图中调用时,ID 永远不会被序列化:

items_json = serializers.serialize('json',  item_list) 

浏览器收到的 item_list json 仅包含名称,不包含 ID。 我需要客户端处理的 ID,稍后返回服务器。

1) 如果可能,我想避免创建另一个 ID

2) 我还没有创建序列化程序类。我不知道在哪里以及如何做到这一点。

【问题讨论】:

  • 是的,它确实包含主键。如果您确定没有,则应显示items_json 的内容。
  • 我确定不是因为我在浏览器中看到的 json 没有返回它。:{data:"[{"model":"portal.item", "pk ": 1, "fields": {"name": "Test Item 1"}}]", result: "success",…} data : "[{"model": "portal.item", "pk": 1、“字段”:{“名称”:“测试项目 1”}}]” not_permitted :“[{“模型”:“portal.item”、“pk”:3、“字段”:{“名称”: “秘密”}},{“模型”:“portal.item”,“pk”:2,“字段”:{“名称”:“项目秘密”}}]”结果:“成功”
  • 但我可以在该输出中看到 "pk": 1 等。
  • pk是id吗?我想是的。它在字段列表之外。

标签: python json django serialization


【解决方案1】:

我找到了解决方案。发送过来的 pk 字段是 id。 id 现在将显示在字段中。所以在javascript中你应该这样做:

$.each( $.parseJSON(data), function(key, val) {
    console.log("ID: " + val.pk)
});

【讨论】:

    猜你喜欢
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 2018-01-30
    • 2017-10-20
    • 2010-11-30
    • 2019-12-27
    • 1970-01-01
    相关资源
    最近更新 更多