Opened 15 months ago
Last modified 15 months ago
#34796 closed Bug
Deleting child table does not delete columns in parent table when using multi-table inheritance — at Initial Version
Reported by: | Stephen Finucane | Owned by: | nobody |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | 4.2 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
I am aware that we don't use database-level cascades (ticket:21961) but I expected this to be implemented by Django in Python, given the docs (https://docs.djangoproject.com/en/4.2/topics/db/models/#multi-table-inheritance) say that the automatically-created OneToOneField
on the child model will have on_delete=models.CASCADE
.
place_ptr = models.OneToOneField( Place, on_delete=models.CASCADE, parent_link=True, primary_key=True, )
I have produced a reproducer which I will provide a link to shortly. In summary though, you simply need to create a table using multi-table inheritance and then delete that table. While the child table will be deleted, the corresponding rows in the parent table will remain,