据我所知,OneToOneField将创建一个unique-constraint数据库unique-index来管理unique-constraint内部的唯一值。结果,unique-constraint将等同于unique-index. (因为都有一张unique-index桌子)万一models.OneToOneField('one_to_one', db_index=False)呢?OneToOneField需要unique-index管理,unique-constraint但它告诉不要创建db_index。对我来说似乎很奇怪,但没有任何语法错误。它是如何工作的?models.OneToOneField('one_to_one', db_index=False)和之间有什么不同models.OneToOneField('one_to_one')?
2 回答

泛舟湖上清波郎朗
TA贡献1818条经验 获得超3个赞
查看OneToOneField的源代码,它将始终UNIQUE
在表上设置约束。这将覆盖(悄悄地,显然)db_index
您可能设置的任何首选项
如果您想通过其他方式查看正在发生的事情,这里有几个选项:
您可以在生成的迁移中使用
sqlmigrate
Django 命令来查看它会告诉您的数据库做什么执行迁移后,您可以检查数据库以查看已设置的约束/索引
添加回答
举报
0/150
提交
取消