如何在 Django 中将外键设置为 <null>(没有 on_delete=models.SET_NULL)

阿列克谢·哈特克维奇

您能否建议如何将外键设置为“NULL”?在下面的示例中,我想覆盖 delete 方法,以便不删除图像,而是将它们的 FK 设置为“NULL”,以便稍后恢复它们并将它们与父对象重新连接。


def delete(self, using=None, keep_parents=False):        
    self.foreighnkey = None # foreighnkey  is the fk field's name
    self.save()

# https://stackoverflow.com/questions/4446652/django-how-to-set-a-field-to-null
# doesn't work this way

PS 父对象将保持不变,因此不能选择使用它们的删除方法

阿列克谢·哈特克维奇

在这种情况下可以获取 Primary 模型实例,然后使用它的相关管理器来调用

Primary_model_instance.secondarymodel_set.remove(self)

# or alternativelly
 self.foreighnkey.currentmodel_set.remove(self)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

null = True和on_delete = models.SET_NULL django之间的区别

你如何为 Django 的 'on_delete=models.SET_DEFAULT' 设置默认值

如何自动更新外键使其具有“,on_delete = models.PROTECT”

on_delete = models.PROTECT和on_delete = models.CASCADE对Django模型有什么作用?

如果删除用户并将外键设置为模型,用户注释会发生什么情况。SET_NULL

django.core.exceptions.FieldDoesNotExist:模型没有名为<function SET_NULL at 0x7fc5ae8836e0>的字段

Django 2.2 user = models.ForeignKey(User,null = True,blank = True)TypeError:__init __()缺少1个必需的位置参数:'on_delete'

在 Postgres 中将复合外键设置为 NULL

Django / Django Rest Framework-如何允许模型序列化程序将模型的外键字段设置为null?

尝试使用没有 null=True 或默认设置的外键迁移模型时出现 Django 错误

on_delete对Django模型有什么作用?

MySQL没有结果,因为外键为NULL

如何在MYSQL中设计带有外键但值为NULL的表?

在带有数据注释的EF Core迁移中,如何将外键设置为NOT NULL?

如何在int上执行方法?是否设置为null而没有NullReferenceException?

如何在JavaScript中将对象的所有值设置为null?

Tastypie外键设置为null

如何在freemarker中将null设置为变量

如何在graphql中将null设置为字段?

如何在@KafkaListeners中将groupId设置为null

如何在datagrip中将单元格设置为null?

如何在sequelize中将.update()值设置为NULL

如何在函数 R 中将“NULL(空)”设置为 0

如何在Blueprism中将collection设置为null

如何在C#中将列表设置为null?

如何在C#中将null值设置为int?

Spring Boot Delete没有级联,而是将foreign关键字设置为null,然后在null约束下失败

当没有给出 url 参数时,如何在 Django 视图中将当前登录的用户设置为默认值

在Django models.py中,default,null和blank之间有什么区别?