1

我有 2 个模型,一个是 Order Header,另一个是 Orden 详细信息,我想检索一个包含 Order Header 及其内部详细信息的 JSON。我已经看到了model__set检索所有标头的相关外部详细信息的“”函数,但我不知道如何制作像上述结构的 JSON。

我的模型.py

class OrderHeader(models.Model):
    order_doc = models.CharField(...)
    client = models.CharField(...)
    ...

class OrderDetail(models.Model):
    header = models.ForeignKey(OrderHeader)
    var1 = models.CharField(...)
    var2 = models.CharField(...)

我需要收到类似的东西:

[
    {
    order_doc:'1234',
    client:'Client Name',
    details:[
        {
            var1:'var1',
            var2:'var2'
        },
        {
            var1:'var01',
            var2:'var02'
        }
    ]
    },
    ...
]

我该如何编写序列化程序或查询json.dumps呢?

4

1 回答 1

1

看看使用自然键。您可以将您的定义OrderHeader为:

class OrderHeader(models.Model):
    order_doc = models.CharField(...)
    client = models.CharField(...)

    def natural_key(self):
        return self.order_doc

在您的查询集中,您可以执行以下操作:

result = serializers.serialize("json", OrderDetail.objects.filter(header__id = pk), indent=2, use_natural_foreign_keys=True, use_natural_primary_keys=True)

文档中的更多详细信息

于 2015-06-01T19:47:54.237 回答