2015-07-10 64 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