django对数据库实现级联删除
时间: 2024-01-01 10:03:13 浏览: 78
用JDBC实现数据库的级联删除与更新
4星 · 用户满意度95%
Django 中可以通过设置外键的 `on_delete` 参数来实现级联删除。在定义外键的时候,可以将 `on_delete` 参数设置为 `models.CASCADE`,这样在删除主表数据的同时,会自动删除与之关联的从表数据。
例如,如果有两个模型 `Author` 和 `Book`,其中 `Book` 模型有一个外键指向 `Author` 模型:
```python
class Author(models.Model):
name = models.CharField(max_length=100)
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.ForeignKey(Author, on_delete=models.CASCADE)
```
在上面的例子中,当删除一个作者时,与之关联的所有书籍都会被删除。
注意,`on_delete` 参数还支持其他的选项,例如 `models.PROTECT`(防止删除)和 `models.SET_NULL`(将外键设置为 NULL)。具体的选项可以查看 Django 官方文档。
阅读全文