2015-07-10 87 views
0

我有一些JSON格式的数据,我想用manage.py loaddata data.json命令加载数据。我有以下JSON格式。需要帮助来定义Django中的模型字段

{ 
    "fields":{ 
    "user id":12026, 
    "user name":"Paul Graham", 
    "email":"[email protected]", 
    "city":"China", 
    "VIdeoData":[ 
     { 
      "video":"Livetube", 
      "time":0 
     }, 
     { 
      "video":"Leexo", 
      "time":22 
     } 
    ] 
    }, 
    "pk":1, 
    "model":"graph.videometadata" 
}, 

这里我的问题是我将如何为VideoData定义模型字段?视频数据中的对象可能会有所不同。

+0

尝试这种方法http://stackoverflow.com/a/5726226/3033586 – madzohan

+0

这取决于* how *视频数据会有所不同。与NoSQL数据库不同,Django模型需要确切知道模型中可以存储和不可存储的内容。 您可能需要多态性和自定义分析器来实际加载数据... – EvertW

+0

@EvertW在上面的示例中,videodata有两个对象......但它可以是3个对象或10个对象内的行是常量即每个对象将有视频和时间领域....任何想法我怎么能实现这一点... – Naresh

回答

0

你的模型应该包含通过外键关系链接到存储数据的两个表,就像这样:

from django.db.models import Model 
from django.db import models 

class User(Model): 
    user_id = models.IntegerField() 
    user_name = models.CharField(max_length=40) 
    email = models.EmailField() 
    city = models.CharField(max_length=40) 

class VideoData(Model): 
    video = models.CharField(max_length=40) 
    time = models.IntegerField() 
    user = models.ForeignKey(User, related_name='VideoData') 

实际加载从JSON类似于你提供什么样的模型,您可能需要natural keys

+0

我定义了模型按照您的解决方案,但是当我使用“manage.py loaddata”命令我得到错误:“用户有没有字段名为u'VIdeoData'“...请给我解决方案.. – Naresh

+0

你可能会尝试添加一个related_name到外键,我会更新模型。还没有尝试加载JSON。 – EvertW

+0

现在我收到错误:“VideoData没有名为u'user_name的字段” – Naresh