Python 控制django中约束的名称
我的问题是需要将django生成的Python 控制django中约束的名称,python,mysql,sql,django,mariadb,Python,Mysql,Sql,Django,Mariadb,我的问题是需要将django生成的外键约束替换为DELETE CASCADE上的约束。我想做的是扩展django生成的迁移,用RunSQL实现以下功能: 使用Drop外键删除Django生成的约束 使用删除级联上的创建新约束 要执行第一个操作,我需要外键约束的名称,但这是由django自动生成的 如何强制指定外键的名称约束?(不是外键列的名称,这是另一回事)有一个简单的解决方案:首先不要允许django创建外键约束。这可以通过db_constraint=False实现: tenant = mod
外键
约束替换为DELETE CASCADE上的约束。我想做的是扩展django生成的迁移,用RunSQL
实现以下功能:
使用Drop外键删除Django生成的约束
使用删除级联上的创建新约束
要执行第一个操作,我需要外键约束的名称,但这是由django自动生成的
如何强制指定外键的名称
约束?(不是外键列的名称,这是另一回事)有一个简单的解决方案:首先不要允许django创建外键约束。这可以通过db_constraint=False
实现:
tenant = models.ForeignKey(Tenant, on_delete=models.CASCADE, null=True, db_constraint=False)
在这之后,您可以使用迁移设置任何您喜欢的约束。RunSQL
有一个简单的解决方案:首先不要允许django创建外键约束。这可以通过db_constraint=False
实现:
tenant = models.ForeignKey(Tenant, on_delete=models.CASCADE, null=True, db_constraint=False)
之后,您可以使用migrations.RunSQL
设置任何您喜欢的约束