我有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
这样的查询? 最佳答案
看一下使用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)
文档中的更多详细信息
关于python - Django-具有model_set的ModelSerializer,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30580745/