我正在努力将 Django 2.0 支持添加到 django-pagetree 库。在自动化测试期间,使用 sqlite 内存数据库,我收到了一堆这样的错误:
File "/home/nnyby/src/django-pagetree/pagetree/tests/test_models.py", line 638, in setUp
'children': [],
File "/home/nnyby/src/django-pagetree/pagetree/models.py", line 586, in add_child_section_from_dict
...
File "/home/nnyby/src/django-pagetree/venv/lib/python3.5/site-packages/django/db/backends/base/base.py", line 239, in _commit
return self.connection.commit()
django.db.utils.IntegrityError: FOREIGN KEY constraint failed
Django 2.0 发行说明中对此进行了说明: https ://docs.djangoproject.com/en/2.0/releases/2.0/#foreign-key-constraints-are-now-enabled-on-sqlite
从那个我不完全理解的描述来看,这不应该适用于非持久性的测试数据库,对吧?使用 Django 2.0 时,我的 sqlite 测试数据库不会使用适当的选项创建吗?
我用于测试的应用程序设置在这里: https ://github.com/ccnmtl/django-pagetree/blob/master/runtests.py
原文由 nnyby 发布,翻译遵循 CC BY-SA 4.0 许可协议
文档说了两件事:
这肯定会因 ForeignKey 约束错误而失败,因为
PageBlock
必须具有section
,所以你不能调用create