我有2个模型,一个是订单标题,另一个是Orden详细信息
我想检索一个包含Order Header的JSON,里面有详细信息。
我已经看到了“model__set
”函数,它检索所有标题的相关外部细节,但我不知道如何制作类似于上述结构的JSON。
我的models.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
这个?
答案 0 :(得分:1)
看一下使用natural keys。您可以将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)
文档中的更多详细信息