我读过关于de / serializers但我在这里找不到的方法。我有两个应用程序,一个用于存储我的数据(已删除数据),另一个用于显示当前/新数据。我在这两个应用程序中有相同的模型。所以我将说app A的模型转换为json,现在我想用json填充app B的模型。怎么可能呢?我不喜欢使用django REST框架。
所以我做了python manage.py dumpdata app_name> somefile.json
如何使用somefile.json?
的内容填充模型B的字段答案 0 :(得分:2)
您可以使用模型序列化程序。假设你有一个模型MyModel,为此模型创建一个serailizer,
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
您必须创建一个列表,其中列表中的每个元素都是MyModel实例数据的字典。 python中的JSON数据基本上是一个字典。因此,列表中的每个元素都将是模型的每个唯一实例的字典(JSON数据)。
列表可能如下所示:
[
{
"pk": "1",
"field_1": "data_1",
"field_2": "data_2",
.....
},
{
"pk": "2",
"field_1": "data_1",
"field_2": "data_2",
.....
},
...
]
现在将包含MyModel的json数据的列表传递给序列化程序。如果json数据有效,则序列化程序将数据反序列化为MyModel实例。然后你可以简单地保存它们。
serializer = MyModelSerializer(data=json_data, many=True)
if serializer.is_valid():
serializer.save() # `.save()` will be called on each deserialized instance