Django JSON类列表包含类列表正确反序列化和JSON表示到模型?

2024-06-01 02:20:19 发布

您现在位置:Python中文网/ 问答频道 /正文

在django1.6中,我使用serializers.deserialize尝试将以下JSON(我在客户端手动序列化)反序列化为以下模型。。在

**JSON应该表示一个对象列表,每个对象又包含一个对象列表。因此,一个“test”列表和每个test都包含一个“subtest”列表,如下所示:

[
    {
        "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模型中,最好的表示方法是有两个模型类,一个用于父测试(测试),一个用于子测试(子测试),如下所示:

^{pr2}$

我的问题

  • 如何在Django模型中最好地表示包含类列表的类?我认为为了表示这种关联,子测试类“指向”测试中的一个条目需要一个ForeignKey

  • 因为我用JSONEncoder手动编码JSON。因此,我正在构建pk、模型和字段以及您在上面的JSON中看到的一切,我自己。对于一个包含类的python对象的列表,它看起来正确吗?我试图实现的(非常粗略的)UML非常具有前瞻性,是测试和子测试之间的一对多关系。所以这个测试有很多子测试。测试都在一个列表中。


+------------+ 1    *..1 +------------+   1     1..*  +----------+  
|    list    |---------->|    Test    |<>-------------| SubTest  |  
|     of     |           |            |               |          |  
|    Tests   |           |            |               |          |  
+------------+           +------------+               +----------+   

我感谢任何帮助或意见。在


编辑:更改名称,为问题添加更多细节。在


Tags: 对象djangoname模型testjsonfields列表