使用django中的json数据填充模型(数据库)

时间:2014-03-26 15:32:10

标签: json django django-models

我读过关于de / serializers但我在这里找不到的方法。我有两个应用程序,一个用于存储我的数据(已删除数据),另一个用于显示当前/新数据。我在这两个应用程序中有相同的模型。所以我将说app A的模型转换为json,现在我想用json填充app B的模型。怎么可能呢?我不喜欢使用django REST框架。

所以我做了python manage.py dumpdata app_name> somefile.json

如何使用somefile.json?

的内容填充模型B的字段

1 个答案:

答案 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