Python Django-带有model_集的ModelSerializer
我有两个型号,一个是订单头,另一个是Orden细节 我想检索一个JSON,其中包含订单头及其详细信息。 我已经看到了“Python Django-带有model_集的ModelSerializer,python,django,django-serializer,Python,Django,Django Serializer,我有两个型号,一个是订单头,另一个是Orden细节 我想检索一个JSON,其中包含订单头及其详细信息。 我已经看到了“model\uuu set”函数,它检索所有标题的相关外部细节,但我不知道如何创建类似于上述结构的JSON 我的模特 class OrderHeader(models.Model): order_doc = models.CharField(...) client = models.CharField(...) ... class OrderDetail
model\uuu set
”函数,它检索所有标题的相关外部细节,但我不知道如何创建类似于上述结构的JSON
我的模特
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
这个?看看如何使用。您可以将您的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)
更多详细信息,请参见文档,但使用natural_键,我只能在一个字段中获得
def natural_键(self):
中指定的值(在本例中,标题
字段是否正确?我需要获取所有标题字段和所有细节字段,但将标题的所有细节设置为标题内的数组。您给出的答案将返回类似:[{header:'1234',var1:'var1',var2:'var2'},{header:'1234',var1:'var1',var02:'var02'},].我错了吗?事实上我还没有彻底测试过。让我看看后再给你回复