我使用django(1.6)创建一个postgreSQL数据库,我也可以通过其他连接(目前是java和C ++)访问它。我有两个与外键链接的表,我想使用级联删除。 Django默认在其自己的命令中模拟此行为:
https://docs.djangoproject.com/en/1.6/ref/models/fields/#django.db.models.ForeignKey.on_delete
如果我删除manage.py shell中引用的对象,我会得到正确的行为。 (引用对象也被删除)。但是如果我转储sql-schema,我只能找到这个约束:
ALTER TABLE ONLY object_positions
ADD CONSTRAINT object_positions_obj_id_fkey FOREIGN KEY (obj_id) REFERENCES
"Stored_objects"(id) DEFERRABLE INITIALLY DEFERRED ;
如果我有一个通过pgAdmin指向它的object_position,我不允许从“Stored_objects”中删除一行。我已经在models.py中使用了它:
class object_position(models.Model):
class Meta:
db_table = 'object_positions'
obj_id = models.ForeignKey(Stored_objects,primary_key=True,db_column='obj_id',on_delete=models.CASCADE)
虽然Cascade是默认行为。
有没有办法告诉django在sql-commands中添加“ON DELETE CASCADE”?