如何在Django中用ManyToMany关系加载fixtures.json



假设您必须创建一个数据库,在其中存储库中的所有书籍和世界上的所有作者。文件books.json中的每一本书和文件authors.json的每一位作者然后,您需要在这些链接到一本书可以有一个或多个作者的表之间创建一个链接。我所做的是创建所需的模型,然后加载authors.json,然后当我尝试加载books.json时,我得到了错误:django.core.serializers.base.DeserializationError:安装fixture'/workspace/libray/books/fixtures/books.json'时出现问题:

class book(models.Model):
name =models.CharField(max_length=254, blank=True, null=True, on_delete=SET_NULL)
authors = models.ManyToManyField(author)

class authors(models.Model):
name = models.Charfield(max_length=100, blank=True, null=True, on_delete=SET_NULL)

books.json
[ 
{
"pk":1,
"model":books.book,
"fields":{
"name":"Book1",
"authors":[1,2,3]
}
},
...
]
authors.json
[ 
{
"pk":1,
"model":books.author,
"fields":{
"name":"Author1",
}
},
...
]

当模型之间存在M2M关系时,如何正确加载某些固定装置。

首先在模型中添加一些测试数据,然后运行python manage.py dumpdata myapp > somefile.json

然后瞧,你有你的固定模板。

最新更新