json - 如何在 Django 中加载带有多对多关系的 fixtures.json
问题描述
假设您必须创建一个数据库,在其中存储图书馆中的所有书籍以及来自世界各地的所有作者。您在名为 books.json 的文件中拥有每本书,在名为 authors.json 的文件中拥有所有作者。然后,您希望在这些表之间创建一个链接,其中一本书可以有一个或多个作者。我所做的是创建了所需的模型,然后我加载了 authors.json,然后当我尝试加载 books.json 时出现错误:django.core.serializers.base.DeserializationError: Problem installed 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
然后瞧你有你的夹具模板。
推荐阅读
- swift - How to populate table view with custom object?
- c++ - 创建蜂窝网络标识符和用户,然后将其保存在 txt 文件中
- java - 是否可以在 Java Spring 中使用具有一个 URI 的两个控制器类?
- c# - 服务器和客户端之间通过TCP异步传输数据
- python - 里面有一些指令的类
- xpath - Why do I get scrapy response empty?
- objective-c - 子项目中的 Xcode 导入库头
- python-3.x - 带有python的Docker Cassandra给出连接错误
- python-3.x - 布尔运算符无法始终如一地工作。正确打印“a”,但错误打印“b”
- .net - 应用程序失败:未找到 Microsoft.AspNetCore.Antiforgery