[django]在删除文章所关联的分类的时候,属于该分类的文章都被删除了。
来源:互联网 发布:万维网域名续费 编辑:程序博客网 时间:2024/04/30 12:42
1.关系代码
分类的模型:
class Category(models.Model): """ 博主个人文章分类表 """ nid = models.AutoField(primary_key=True) title = models.CharField(verbose_name='分类标题', max_length=32,unique=True) blog = models.ForeignKey(verbose_name='所属博客', to='Blog', to_field='nid')文章的模型:
class Article(models.Model): ''' 文章详细 ''' nid = models.BigAutoField(primary_key=True) title = models.CharField(verbose_name='文章标题',max_length=128) summary = models.CharField(verbose_name='文章简介',max_length=255) read_count = models.IntegerField(default=0) comment_count = models.IntegerField(default=0) up_count = models.IntegerField(default=0) down_count = models.IntegerField(default=0) create_time = models.DateTimeField(verbose_name='创建时间',auto_now_add=True) blog = models.ForeignKey(verbose_name='所属博客',to='Blog',to_field='nid') category = models.ForeignKey(verbose_name='文章类型', to='Category', to_field='nid', null=True,on_delete=models.SET_NULL)
2.执行代码
@authdef delete_category(request): if request.method == 'POST': data = request.POST.get('nid') blog_id = request.session['user_info']['blog__nid'] models.Category.objects.filter(nid=data).delete() return HttpResponse(200)通过分类的nid删除对象,被关联的文章间接被django默认级联删除了。
3.解决办法:
将文章的模型中,关联分类的category属性设为:
category = models.ForeignKey(verbose_name='文章类型', to='Category', to_field='nid', null=True,on_delete=models.SET_NULL)
4.相关资料
给ForeignKey增加属性,
on_delete=models.SET_NULL
即可。
该属性还有其他值可选:
CASCADE: 默认的,级联删除
PROTECT: 通过抛出django.db.models.ProtectedErrordjango.db.models.ProtectedError错误来阻止删除关联的对象
SET_NULL: 设置ForeignKey 为 null; 这个只有设置了null 为 True的情况才能用
SET_DEFAULT: 设置 ForeignKey 为默认值; 默认值必须预先设置
SET(): 设置为某个方法返回的值
DO_NOTHING: 什么都不做,如果数据库设置必须关联则会报IntegrityError错。
阅读全文
0 0
- [django]在删除文章所关联的分类的时候,属于该分类的文章都被删除了。
- test 不属于任何分类的文章
- IEEE的文章分类
- IEEE的文章分类
- 我的文章分类
- 我的文章分类
- WordPress-当文章属于两个或多个分类时,使其在不同的分类使用不同文章模板的方法
- CSDN删除了我的文章吗?
- jsp 将很长的文章分类
- 自己收藏的文章分类
- 织梦dedecms删除文章的同时删除该文章下的图片和附件
- Django学习笔记三:页面侧边栏最新文章,文章归档,分类,标签云的实现
- wordpress 在文章内容页获取相关文章,本文章所在分类的其它文章的方法
- ASPCMS根据页面内容自动调用该分类相关的文章或者推荐文章
- 重新整理了一下Blog上的文章分类
- 用什么方法可以在业务批量操作的时候保持原子性?例如删除多条文章,但是在中 间有一条被删除了,假设出现了错误,如何让整个操作回滚,并定位错误信息?
- 无限级分类的删除
- php无限分类的删除
- How to bootstrap two angular apps in one asp.net mvc application
- Java随笔(持续更新中,想到什么写什么,各种冷知识黑科技小技巧)
- LaTeX常用语法总结
- Linux基础重点补充——第一关
- VMware通过samba和Ubuntu虚拟机共享文件
- [django]在删除文章所关联的分类的时候,属于该分类的文章都被删除了。
- 【LeetCode 35】Search Insert Position(Python)
- 环境变量PATH、 cp命令、mv命令 、 文档查看cat/more/less/head/tail
- Ubuntu mysql 报错:MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost'
- Linux 信号以及开发中常见信号错误
- 国税北京开发票流程
- 新手搭建ssm框架
- 第一篇文章
- python 二维元祖关联合并 返回列表