我正在尝试在Django中创建一个数据库,数据存储在json中。
{
'Vincent van Gogh':
{'The Starry Night': ['starryLink'],
'Irises': ['irisesLink']},
'Leonardo da Vinci':
{'Mona Lisa': ['monalisalink'],
'The Last Supper': ['lastsupperlink']},
}
我是否需要将上述json重写为以下格式?
[
{
"model": "model.artistModel",
"pk": 1,
"fields": {
"artist": "Vincent van Gogh",
"title": "The Starry Night",
"link": ["link.com"]
}
},
我看到了一些从json创建Django数据库的例子,但没有一个看起来像我的json文件。我是否必须将我的数据编入带有循环等的数据库中,或者Django可以自动执行此操作吗?
答案 0 :(得分:0)
有包Django Json Field。它支持Python 3和Django 1.7。 例如:
from django.db import models
from jsonfield import JSONField
class MyModel(models.Model):
json = JSONField()
答案 1 :(得分:0)
要回答我自己的问题,我必须重写我的json文件以符合Django模型。我在models.py中创建了我的模型,看起来像
class Art(models.Model):
title = models.CharField()
artist = models.CharField()
link = models.URLField()
def __unicode__(self):
return u'%s, %s, %s' % (self.title, self.artist, self.link)
我去了/ admin /面板,点击Art模型,输入数据并保存。然后我跑了
python manage.py dumpdata mydata.json
查看数据库将推出什么。它推出的json采用这种格式
[
{
"pk": 1,
"model": "model.artistModel",
"fields": {
"artist": "Vincent van Gogh",
"title": "The Starry Night",
"link": "link.com"
}
},
所以我重新安排了我的json文件,使其具有相同的结构,放入我的django / fixtures文件夹然后运行
python manage.py loaddata myfixture.json
和魔术一样Django用我的所有数据填充数据库。