首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果删除用户并将外键设置为models.SET_NULL,用户评论会发生什么情况

如果删除用户并将外键设置为models.SET_NULL,用户评论会发生以下情况:

  1. 外键设置为NULL:当删除用户时,与该用户相关联的评论的外键字段将被设置为NULL。这意味着评论将不再与任何用户相关联,外键字段将不再引用任何用户对象。
  2. 用户评论仍然存在:即使用户被删除,与该用户相关联的评论仍然存在于数据库中。这是因为外键设置为models.SET_NULL,而不是models.CASCADE。设置为SET_NULL的外键字段将保留对评论的引用,但引用的用户对象将被设置为NULL。
  3. 评论的用户信息丢失:由于用户被删除并且外键设置为NULL,评论将失去与用户相关的信息。评论将不再包含与用户相关的属性,例如用户名、头像等。
  4. 评论的其他属性保持不变:除了与用户相关的属性外,评论的其他属性将保持不变。例如,评论的内容、时间戳等将保持不变。
  5. 应用场景:这种设置适用于当用户被删除时,希望保留评论但不再与用户关联的情况。例如,如果用户注销账户或被禁止访问,但他们的评论仍然有意义并且应该保留在系统中。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Django 2.2文档系列】Model 外键中的on_delete参数用法

Django会模拟SQL约束的行为,在删除此条数据时,同事删除外键关联的对象。...比如:用户的有一个外键关联的是用户的健康记录表,当用户删除时,配置了这个参数的健康记录表中跟这个用户有关的数据也会被删除。...” models.PROTECT 防止删除引用的对象。与上个恰恰相反,是防止关联数据被删除。 models.SET_NULL 设置关联的外键内容为null。只有设置了null=True时可用。...当数据被删除时,被关联的外键内容被设置为null。 models.SET_DEFAULT 将外键的值设置为默认值。外键必须设置有默认值 。...models.SET()将SET()设置的值作为外键的值 ,如果传递了callable,则调用它的结果。 DO_NOTHING不采取行动。

2K10

使用 Django + Vue.js 开发个人博客网站(完整版附源码)—— Python-课程设计-期末项目

; 用户可以查看所有人写的博客,同时可以评论博客,博客的展示与评论的展示都使用了 分页 的功能; 用户查看博客的次数记录为 浏览量 ,用户的浏览数目记录为 评论数,根据这两项系统 自动推荐 热度比较高的文章...对应的 物理模型 为: ? 在物理模型中,由于存在一对多的关系,所以文章表和评论表中加上了两个 外键约束 。...: 和用户表关联在一起: 设置级联删除: 即删除用户的同时会删除该用户的所有文章 author = models.ForeignKey(User, on_delete=models.CASCADE...# 评论的文章 article = models.ForeignKey(Article, on_delete=models.SET_NULL, null=True) # 发表评论的用户...同时如果用户点击了记住我按钮之后,就会将登录信息写入 cookie 中。

6K40
  • 博客将 Django 1.11+ 升级到 Django 2.2+ 遇到的问题及规避方法

    init__() missing 1 required positional argument: 'on_delete' 报错的原因其实一看就能知道,这个地方是说的关于一些模型在一对一关联和一对多关联(外键...规避方法 把项目中所有模型中有外键的字段都添加这个属性,添加的时候需要根据实际情况设定值。...,什么也不做 on_delete=models.PROTECT, # 删除关联数据,引发错误ProtectedError on_delete=models.SET_NULL, # 删除关联数据...,与之关联的值设置为null(前提该字段需要设置为可空,一对一同理) on_delete=models.SET_DEFAULT, # 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值,...) # 当工具分类删除后把分类设置为空 # class Comment(models.Model): # 删除评论人或者父评论的时候同时删除评论 author = models.ForeignKey(

    98320

    django模型中有外键关系的表删除相关设置

    0904自我总结 django模型中有外键关系的表删除相关设置 一.一对一 例如有Author、AuthorDetail两表 author = models.OneToOneField(to='Author...,详情删除作者保留 2)作者找详情用 外键related_name(detail),详情找作者用 外键字段(author) 3)db_constraint断开表关联,on_delete规定逻辑关联删除动作...,书删除没有任何影响 2)出版社找书用 外键related_name(books),书找出版社 外键字段(publish) 3)db_constraint断开表关联,on_delete规定逻辑关联删除动作...,models.DO_NOTHING关联无动作 三.以外键字段关联 1)断关联,删除关联表记录,外键值置空 db_constraint=False, on_delete=models.SET_NULL...,但关系表一定级联删除 2)正向找 外键字段,反向找 外键字段related_name 3)db_constraint断开表关联,on_delete不存在(不设置,本质在第三张表中设置,且一定是级联

    3K20

    Django+Vue开发生鲜电商平台之3.数据模型设计和资源导入

    在PyCharm新建项目,需要选择Django,而不是Pure Python,建立好之后,需要选择解释器为建立的虚拟环境所对应的解释器,选择模板语言为Django,设置应用名为users,并取消勾选Enable...': {'init_command': 'SET default_storage_engine=INNODB;'} } } 因为后面第三方登录时进行数据迁移的需要,需要添加OPTIONS参数,设置存储引擎为...还需要进行项目目录的优化调整: 在项目主目录下New一个Python Package为apps,保存项目中所有的app,并将自动生成的users移动到apps目录下; 再在主目录下创建extra_apps...为了保存数据,在进行删除操作时不真正删除数据,所有模型都增加一个属性is_delete,为布尔型值,为False时表示未删除,为True时表示被删除,以此来保证数据的安全。...显然,此时可以(用刚刚创建的用户名和密码)登录后台,但是网页语言还是英文,需要对settings.py进行设置如下: LANGUAGE_CODE = 'zh-hans' # 中文支持 TIME_ZONE

    1.9K40

    Django——图书管理系统(六)

    本文将讲述设置外键操作,关于外键的更多知识,大家可以看看数据库的知识。当然我依旧会在注释中做出一些解释。 现在我们已经有了出版社这张表,现在我们添加书籍这张表。...由于出版社和书籍之间是有关系的,我们使用外键来连接两者之间的关系。...models.PROTECT:保护,如果某个出版社还有书籍存在,那么就不允许删除该出版社。...models.SET_DEFAULT:表示删除后设为默认值 models.SET_NULL:删除后设为空值 models.SET(x):删除后设为某个值 ''' 增加一张表之后,...publisher_id_id这个名字很奇怪,这是因为models会自动给外键加上_id这个后缀,所以,修改我们的Book类如下: class Book(models.Model): name

    58240

    django drf_mnbkdrf

    如果我们需要使用模型的全部字段,则可以将fields属性设置成'__all__' 默认情况下,fields里的字段既参加序列化也参加反序列化,如果我们想某个字段只序列化或反序列化可以定义extra_kwargs...extra_kwargs,那么password默认参加序列化和反序列化,那么密码就会返回给前端了,这里我们定义了extra_kwargs字段,在字段中设置了password只能反序列化,那么用户只能提交密码...fields = ['id', 'name', 'age', 'sex', 'classes'] 我们在StudentModelSerializer中增加了一个额外的字段classes,并将字段设置为只读...,一般外键只做序列化,并且在fields列表中添加了该字段。...注意:我们在创建外键模型时,必须在外键中设置related_name,如果没设置,序列化时不会返回关联的外键内容 接下来我们访问http://127.0.0.1:8000/drf/student/,会看到返回的学生表中包含了班级表的内容

    41720

    模型

    当model中如果没有自增列,则自动会创建一个列名为id的列。...,表示允许为空,默认值是False null # 如果为True,则该字段允许为空白,默认值是False blank # 字段的名称,如果未指定,则使用属性的名称 db_column # 若值为True...auto_now 外键字段: # 一对一 OneToOneField # 一对多 ForeignKey # 多对多 ManyToManyField title = models.ForeignKey...models.PROTECT # 删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空) models.SET_NULL # 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值...) models.SET_DEFAULT # 删除关联数据,与之关联的值设为指定值 models.SET # 是否在数据库中创建外键约束,默认为True。

    20830

    MySQL3_外键及查询

    ) 2.触发器 2.外键 外键:从表的公共字段 外键的约束主要是用来保证引用的完整性的,主外键的名字可以不一样,但是数据类型可以一样....values(null,1,100,100),(null,2,100,100),(null,3,100,100),(null,4,100,100); #两种串联的操作: 1.set null: 让一个字段设置为...(`stuno`) REFERENCES `stuinfo` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; #删除外键 #score_ibfk_1 外键的名字...1.某个用户是版主,版主管理板块 2.普通用户和版块之间没有直接的关系,用户发帖或者用户评论间接的和版块之间形成关系 #用户和帖子之间的关系 1.用户发表了帖子 2.用户评论了某个帖子 #用户和评论之间的关系...1.用户发表了评论 2.用户发表了帖子,被其他人评论了 3.如果有二级评论,你的评论被人喷了 #帖子和版块之间的关系 帖子属于版块 5.数据的规范 (1)第一范式 第一范式:确保每一列原子化(不可分割

    3K20

    Python Django开发 异常及其解决办法(一)

    python manage.py migrate,提示No migrations to apply 造成多次应用migrations失败的原因是,当前model是修改过的,原来的migrations已经被删除...4.Django配置MySQL数据库时django.db.utils.OperationalError Django默认配置的数据库为sqlite,为稳健性数据库,一般需要改为MySQL等数据库,settings.py...这可能是因为所定义的某个模型定义了外键,而在新版的Django中外键必须指定on_delete属性,例如user = models.ForeignKey(User, verbose_name='用户',...on_delete=models.SET_NULL)此时是因为该属性指定为models.SET_NULL,即在父模型删除数据后,对应的子模型记录字段设为空,但是在定义该字段时并未允许该字段为空,因此解决方法有两种...: 字段增加null属性为真 即字段定义为user = models.ForeignKey(User, verbose_name='用户', null=True, on_delete=models.SET_NULL

    3.2K20

    Django model,baseModel基类, migrate移行

    复数名称用:verbose_name_plural管理画面标示的名称是这样的,默认加s图片4. default_related_name在外键中设置外键反向查询的字段名。...补充:on_delete在外键中必须设置,表示级联关系。 级联关系:例,主表数据删除后,参照表的外键值,如何处理。  限制 insert参照表的数据之前,主表必须先登录数据,以避免脏数据产生等。...假设A表依赖B表,B记录删除,A表的外键字段重置为default属性设置的值。SET_NULL:配合NULL=True使用。...假设A表依赖B表,B记录删除,A表的外键字段重置为NULL, 例:product被删,order的外键product,重置为NULL注:多对多字段不能设置on_delete级联关系。有空再研究。...你可以自定义这个列表,例如,如果你的应用不需要任何默认的权限,可以将其设置为空列表。它必须在模型创建之前通过migrate在模型上指定。

    1.1K30

    Django实战-Signals 信号量

    这个功能在用户发生某个动作的时候将其记录下来或者附加某些操作,比如通知好友。要实现这种功能可以在动作发生的代码里实现,也可以通过数据库触发器等实现,但在django中,可以使用signals。...记录每个操作,同时还能追踪到这个操作的具体动作: ① 用信号机制,监听信号,实现对信号的响应函数,在响应函数中记录发生的动作。...在新鲜事这个功能上,使用GenericRelation来产生一个特殊的外键,它不像models.ForeignKey那样,必须指定一个Model来作为它指向的对象,GenericRelation可以指向任何...models.ForeignKey(User, on_delete=models.CASCADE) content_type = models.ForeignKey(ContentType, on_delete=models.SET_NULL...往期回顾 Django源码学习-4-Signals 信号量 Django源码学习-25-ContentType Django实战-信息资讯-付费资讯基础模型 Django实战-生鲜电商-删除购物车数据|

    74230

    【云+社区年度正文】Django从入门到精通No.2----模型

    注:数据参考来源w3cschool 上面的字段很容易让人想起数据库中的数据类型,所以这些字段也就会有约束,常用的约束如下: null:字段是否可以为空 blank:是否允许用户输入为空 db_column...1.多对一 因为是关联关系,所以我们必须指定两个类来进行相互操作,这里涉及到一个外键的操作,即ForeignKey字段,而且外键要定义在多的一方。...- models.SET_NULL 删除关联数据,与之关联的值设为null(前提FK字段需要设为可空) - models.SET_DEFAULT 删除关联数据...与之关联的值设置为指定值,设置:models.SET(值) 2....createsuperuser 然后我们按照要求一步步设置参数,如图: 1.jpg 然后我们启动服务器并且进入到下图这个页面中去,如图: 2.jpg 然后我们利用刚刚设置好的用户名和密码来进行登陆

    2.1K00

    MySQL 面试题

    外键约束InnoDB:支持外键约束,有助于保持数据的完整性。MyISAM:不支持外键约束。内存使用InnoDB:需要更多的内存和存储空间。MyISAM:需要的内存和存储空间较少。...修改和删除候选键:可以被修改和删除,只要保证表中还有其他候选键能够唯一标识记录。主键:一旦被设置,修改或删除会比较复杂,因为涉及到索引和外键关系的更新。myisamchk 是用来做什么的?...列值:主键索引的列值不允许为空,而唯一索引允许有空值。应用场景:主键通常用于唯一标识表中的记录,唯一索引用于防止数据重复并提高查询效率,联合索引用于提高多列查询的效率。什么情况下设置了索引但无法使用?...列设置为 AUTO INCREMENT 时, 如果在表中达到最大值, 会发生什么情况?会停止递增, 任何进一步的插入都将产生错误, 因为密钥已被使用。怎样才能找出最后一次插入时分配了哪个自动增量?...如果在一个程序系统中大量的使用存储过程,到程序交付使用的时候随着用户需求的增加会导致数据结构的变化,接着就是系统的相关问题了,最后如果用户想维护该系统可以说是很难很难、而且代价是空前的,维护起来更麻烦。

    10310

    简易评论系统设计

    帖子ID,主键user_idBIGINT发帖用户ID,外键,引用User表的user_idtitleVARCHAR帖子标题contentTEXT帖子内容post_timeDATETIME发帖时间comment_countINT...count(*)评论表t_comment字段名数据类型描述comment_idBIGINT评论ID,主键user_idBIGINT评论用户ID,外键,引用User表的user_idpost_idBIGINT...所评论的帖子ID,外键,引用Post表的post_idparent_comment_idBIGINT父评论ID,如果是一级评论,此字段为NULLreply_to_comment_idBIGINT被回复的评论...ID,如果是一级评论,此字段为NULLreply_to_user_idBIGINT被回复的用户ID,如果是一级评论,此字段为NULLcontentTEXT评论内容comment_timeDATETIME...更新时间deleted_timeDATETIME删除时间reply_to_comment_id和reply_to_user_id 只有当当前评论是对二级评论的回复是时为非NULL,因为我们的评论系统是二级嵌套结构

    34110

    简易评论系统设计

    设计概要 实体分析 基于前面的需求分析,一个简易的评论系统,一般会包含三个实体: User:自然人,发表主题和评论的人 Subject: 主题,用户发表的主题,被评论的对象 Comment: 评论或回复...删除时间 帖子表t_post 字段名 数据类型 描述 post_id BIGINT 帖子ID,主键 user_id BIGINT 发帖用户ID,外键,引用User表的user_id title VARCHAR...BIGINT 评论ID,主键 user_id BIGINT 评论用户ID,外键,引用User表的user_id post_id BIGINT 所评论的帖子ID,外键,引用Post表的post_id parent_comment_id...BIGINT 父评论ID,如果是一级评论,此字段为NULL reply_to_comment_id BIGINT 被回复的评论ID,如果是一级评论,此字段为NULL reply_to_user_id...BIGINT 被回复的用户ID,如果是一级评论,此字段为NULL content TEXT 评论内容 comment_time DATETIME 评论时间 status ENUM 评论状态,如'NORMAL

    22310
    领券