goz*_*lli 3 python django postgresql cascade foreign-keys
在Django,我有一个模型:
class HmmInsectValue(models.Model):
hmm = models.ForeignKey('HmmResult', on_delete=models.CASCADE)
...
Run Code Online (Sandbox Code Playgroud)
在PostgreSQL数据库(9.3.2)上,这会产生一个约束:
FOREIGN KEY (hmm_id) REFERENCES devdash_hmmresult(id) DEFERRABLE INITIALLY DEFERRED
Run Code Online (Sandbox Code Playgroud)
而我真正想要的是:
FOREIGN KEY (hmm_id) REFERENCES devdash_hmmresult(id) ON DELETE CASCADE
Run Code Online (Sandbox Code Playgroud)
这会破坏我的代码,因为当我尝试删除一个HmmResult条目时,它会抱怨它仍然被引用HmmInsectValue.如果我用上面的线手动替换它一切正常.
知道为什么会这样吗?
因为Django模拟应用程序层中的on_delete子句.我相信它这样做,所以它仍然可以提供删除信号之类的东西.
指示Django做什么的on_delete属性ForeignKey,它不直接转换为数据库构造语句.
另见:https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.DO_NOTHING
| 归档时间: |
|
| 查看次数: |
1805 次 |
| 最近记录: |