如何在Django中序列化dict?

时间:2016-06-06 17:23:34

标签: python django serialization

我无法弄清楚如何序列化某种形式的cleaned_data。问题可能是,此cleaned_data包含model objects。我没有发现任何触及此问题的内容,所以我在这里问。

  

例外值:
  '字典'对象没有属性' _meta'

是否有一些简单的方法或Django内置函数?

我的cleaning_data:

{'notes': u'dsads', 'language_from': <Language: Slovak>, 'file': None, 'short_description': u'dsadsad', 'text_to_translate': u'dsads', 'delivery_date': datetime.date(1930, 1, 1)}

这是formset cleaning_data:

[{'language': <Language: Magyar>, 'level': <Level: Standard level>}, 
 {'language': <Language: Russian>, 'level': <Level: Standard level>}, {}, {}, {}]

serializer.serialize(cleaned_data)不起作用,因为models中有cleaned_data

我可能想到的唯一方法是将所有对象更改为它的主键,并在反序列化后从数据库中获取它们。

我想序列化cleaning_data,因为我将它们发送到另一个视图。

1 个答案:

答案 0 :(得分:0)

执行此操作的Django方法是使用model_to_dict。这会将模型实例序列化为字典。在cleanded_data

中分别对每个模型实例调用此方法
from django.forms.models import model_to_dict

model_to_dict(model_instance)