1. 级联操作
继续用上一节的项目案例,在article下的views.py文件中更新代码:
from django.shortcuts import render
from .models import Category,Article
from django.http import HttpResponse
def index(request):
article = Article.objects.first()
print(article.category.name)
return HttpResponse("success")
def delete_view(request):
category = Category.objects.get(pk=1)
category.delete()
return HttpResponse("删除成功")
将函数映射到urls文件中
from django.urls import path
from . import views
app_name = 'article'
urlpatterns = [
path('',views.index,name='index'),
path('delete/',views.delete_view,name='delete'),
]
保存后,浏览器中打开http://127.0.0.1:8000/delete/网址,category表中的第一条数据被删除,article表中id=1类别的内容也会被删除。
2. PROTECT受保护的
如果外键被引用,那么将不能被删除
在category表中创建一条数据如下

在article表中创建一条数据

本文详细介绍了Django中处理外键删除的五种策略:级联操作、PROTECT保护、SET_NULL设置为空、SET_DEFAULT设置默认值以及SET()设置函数值作为外键值。通过实例展示了如何在数据库操作中应用这些策略,确保数据完整性和安全性。
最低0.47元/天 解锁文章
448

被折叠的 条评论
为什么被折叠?



