據(jù)我所知,OneToOneField將創(chuàng)建一個unique-constraint數(shù)據(jù)庫unique-index來管理unique-constraint內(nèi)部的唯一值。結果,unique-constraint將等同于unique-index. (因為都有一張unique-index桌子)萬一models.OneToOneField('one_to_one', db_index=False)呢?OneToOneField需要unique-index管理,unique-constraint但它告訴不要創(chuàng)建db_index。對我來說似乎很奇怪,但沒有任何語法錯誤。它是如何工作的?models.OneToOneField('one_to_one', db_index=False)和之間有什么不同models.OneToOneField('one_to_one')?
2 回答

泛舟湖上清波郎朗
TA貢獻1818條經(jīng)驗 獲得超3個贊
查看OneToOneField的源代碼,它將始終UNIQUE
在表上設置約束。這將覆蓋(悄悄地,顯然)db_index
您可能設置的任何首選項
如果您想通過其他方式查看正在發(fā)生的事情,這里有幾個選項:
您可以在生成的遷移中使用
sqlmigrate
Django 命令來查看它會告訴您的數(shù)據(jù)庫做什么執(zhí)行遷移后,您可以檢查數(shù)據(jù)庫以查看已設置的約束/索引
添加回答
舉報
0/150
提交
取消