2014-03-26 76 views
1

我阅读了关于de/serializers的内容,但我无法在此找到方法。我有两个应用程序,一个用于存储我的数据(抓取的数据),另一个用于显示当前/新数据。我在这两个应用程序中有相同的模型。所以我把说的应用程序A的模型转换为json,现在我想用该json填充应用程序B的模型。它可能怎么做?尽管我不喜欢使用django REST框架。在Django中使用json数据填充模型(数据库)

,所以我做了蟒蛇manage.py dumpdata APP_NAME> somefile.json

我如何填充somefile.json的内容模型B的领域?

回答

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", 
     ..... 
    }, 
    ... 
] 

现在通过使用JSON数据的列表为MyModel到串行器。如果json数据有效,则序列化器将将数据反序列化为MyModel实例。然后你可以简单地保存它们。

serializer = MyModelSerializer(data=json_data, many=True) 
if serializer.is_valid(): 
    serializer.save() # `.save()` will be called on each deserialized instance 
+0

非常感谢, 解决了这个问题。 – Deepak

+0

这在Django 1.11(serializers.ModelSerializer DNE)中似乎不推荐使用, – KareemElashmawy