在Django 1.6中,我使用serializers.deserialize
尝试将以下JSON(我在客户端手动序列化)反序列化为以下模型。
** JSON应该表示一个对象列表,每个对象再次包含一个对象列表。因此,“测试”列表和每个测试都包含“子测试”列表 - 如下所示:
[
{
"pk": 1,
"model": "polls.test",
"fields": {
"category": "CategoryThing",
"parent_name": "parent_test_name_1",
'subtest': [
{'pk': 2,
'model': 'polls.subtest',
'fields': {'status': 'passed',
'regression_status': 'disabled',
'name': 'sub_test_name_1'
}
},
{'pk': 2, // corrct pk ?
'model': 'polls.subtest',
'fields': {'status': 'passed',
'regression_status': 'enabled',
'name': 'sub_test_name_2'
}
}
},
// more parent test objects containing multiple subtest objects like above..
]
当我尝试将JSON中的列表表示为Django模型时,我的问题出现了 - 所以当反序列化子测试时,以及从我的JSON中删除嵌入式数组/列表时。 我认为在Django模型中表示它的最佳方式是两个模型类,一个用于父测试(测试)和一个用于子测试( SubTest ),如下所示:
class Test(models.Model):
parent_name = models.CharField(max_length=200)
category = models.CharField(max_length=200)
class SubTest(models.Model):
test = models.ForeignKey('Test', related_name='subtest')
name = models.CharField(max_length=200)
status = models.CharField(max_length=200)
regression_status = models.CharField(max_length=200)
如何最好地表示包含Django模型中的类列表的类?我认为为了表示该关联,SubTest类中需要ForeignKey
“指向“测试中的条目。
我正在使用JSONEncoder
手动编码JSON。因此,我正在构建pk,模型和字段以及您在JSON上面看到的所有内容,我自己。 包含包含对象列表的类的python对象的列表看起来是否正确?我想要实现的(非常粗略的)UML是非常直接的,并且是1到多之间的关系测试和子测试。所以Test有很多SubTests。并且测试都在列表中。
+------------+ 1 *..1 +------------+ 1 1..* +----------+
| list |---------->| Test |<>-------------| SubTest |
| of | | | | |
| Tests | | | | |
+------------+ +------------+ +----------+
我感谢任何帮助或意见。
编辑:更改了名称,为问题添加了更多详细信息。