首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django fixtures和OneToOneField

Django fixtures和OneToOneField
EN

Stack Overflow用户
提问于 2013-08-30 06:11:59
回答 4查看 1.6K关注 0票数 8

如上所述,对于与其他模型具有OneToOne关系的模型,here对象是自动创建的。因此,如果我将Model1与O2O连接到Model2,并将使用pk=1创建Model2的对象,那么将自动创建Model1与model2_id=1的对象。然后,如果我将数据从DB转储到json,我将拥有这些对象的两条记录。如果我试图用loaddata将这些数据加载到数据库中-它将失败,因为Model2的对象将被创建两次,这将导致唯一的索引冲突和IntegrityError

有没有人能找到合理的解决方案?

附注:

我使用Django 1.3.7

EN

回答 4

Stack Overflow用户

发布于 2013-11-02 07:21:38

我做了类似的事情,不是用JSON,而是用xml,我的django是1.7,所以它可能不适合你。

  1. 您可以在引用序列化对象时使用natural keys。如果索引已经被其他对象使用,这将防止混淆项目。
  2. 您可以使用dependencies来定义序列化的顺序(也就是deserialization).

也许像this one这样的类似帖子也是有帮助的。

票数 4
EN

Stack Overflow用户

发布于 2013-11-05 05:13:01

在转储数据fixture时,请确保使用--natural参数:

代码语言:javascript
复制
python manage.py dumpdata myapp --indent=4 --natural

https://docs.djangoproject.com/en/dev/ref/django-admin/#django-admin-option---natural

它看起来在1.7中被弃用了--自然的--外来的

票数 2
EN

Stack Overflow用户

发布于 2013-10-30 17:00:16

您可能最终会使用South,这使得数据迁移既简单又强大:

http://south.readthedocs.org/en/latest/about.html

随着Django1.6的到来,新的migrations module将取代旧的数据库命令,并使South过时。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18521796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档