如何将嵌套的OrderedDict转换为Object

时间:2016-10-18 04:38:55

标签: python django

我有这样的字典

data = OrderedDict([('name', 'NewIsland'), ('Residents', [OrderedDict([('name', 'paul'), ('age', '23')])])])

我希望将其转换为类对象。

这是我的django模特。

class Country(models.Model):
    name = models.CharField(max_length=20)

class Residents(models.Model):
    name = models.CharField(max_length=20)
    age = models.PositiveSmallIntegerField()
    country = models.ForeignKey('Country', related_name='residents')

当我像这样编码时

result = Country(**data)

我得到了异常

  

'居民'是此函数的无效关键字参数

如何将其转换为可以使用result.residents [idx]访问居民的类对象?

1 个答案:

答案 0 :(得分:0)

您可以通过手动创建子对象

来实现
residents_data = data.pop('Residents')    
result = Country(**data)
for rdata in residents_data:
    result.residents.add(Residents(**rdata), bulk=False)