django 是否强制主键的唯一性?
这里的文档似乎是这样建议的,但是当我将一个类定义为:
class Site(models.Model):
id = models.IntegerField(primary_key=True)
并在测试用例中测试此约束:
class SiteTestCase(TestCase):
def setUp(self):
self.site = Site(id=0, name='Site')
self.site.save()
def tearDown(self):
self.site.delete()
def test_unique_id(self):
with self.assertRaises(IntegrityError):
badSite = Site(id=0, name='Bad Site')
badSite.save()
badSite.delete()
测试失败。
如果我在正常字段(primary_key=False,unique=True)上进行测试,那么异常会正确引发。在 id 字段上设置 unique=True 不会改变结果。
我在这里缺少关于 primary_key 字段的内容吗?
如果相关的话,我的数据库后端是 MySQL。