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

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

在Django中,可以使用'on_delete=models.SET_DEFAULT'来设置外键字段的默认值。这个参数用于指定当关联的对象被删除时,外键字段应该采取的行为。

具体设置步骤如下:

  1. 首先,在定义模型类时,需要在外键字段上使用'on_delete'参数,并将其设置为'models.SET_DEFAULT'。
  2. 然后,在外键字段上使用'default'参数,指定默认值。

以下是一个示例:

代码语言:txt
复制
from django.db import models

class MyModel(models.Model):
    default_value = models.CharField(max_length=100, default='default_value')
    foreign_key = models.ForeignKey(OtherModel, on_delete=models.SET_DEFAULT, default=default_value)

在上述示例中,'foreign_key'是一个外键字段,它引用了另一个模型类'OtherModel'。当关联的'OtherModel'对象被删除时,'foreign_key'字段将被设置为默认值'default_value'。

这种设置适用于以下场景:

  • 当关联的对象被删除时,希望外键字段保持一个默认值。
  • 需要在数据库层面上保持数据的完整性,避免出现无效的外键引用。

腾讯云提供了云服务器(CVM)和云数据库MySQL等产品,可以用于搭建Django应用的后端环境。您可以通过以下链接了解更多关于腾讯云产品的信息:

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

相关·内容

Django官方文档小结(一) -- Models模型

Django 关系字段 本文主要内容是关于Django框架中models知识小结 #1 环境 Python3.7.3 Django==2.0.7 #2 字段 #2.1 一对多(ForeignKey)...=models.SET_NULL, # 删除关联数据,与之关联设置为null(前提FK字段需要设置为可空,一对一同理) # models.ForeignKey('关联表', on_delete...=models.SET_DEFAULT, default='默认值') on_delete=models.SET_DEFAULT, # 删除关联数据,与之关联设置默认值(前提FK字段需要设置默认值...与之关联设置为指定值,设置:models.SET(值) b....与之关联设置为可执行对象返回值,设置:models.SET(可执行对象) #2.4 数据库表示 在生成数据库时,Django追加"_id"字段名称来创建其数据库列名,可以通过指定显式更改此内容db_column

77220
  • DjangoAutoField字段使用

    unique=True则该字段在此表中必须是唯一 3、db_index:如果db_index=True则代表这为此字段设置索引 4、default:为该字段设置默认值 四、关系字段 1、to:设置要关联表...2、to_field:设置要关联字段 3、related_name:反向操作时,使用字段名,用于代替原反向查询时”表名_set” 4、on_delete:当删除关联表中数据时,当前表与其关联行为...,例如删除一个出版社,那么和这个出版社有关联书籍也都被删除掉了,下面介绍on_delete参数值: on_delete=models.CASCADE:删除关联数据,与之关联也删除 on_delete...=models.SET_NULL:删除关联数据,与之关联设置为null(前提FK字段需要设置为可空) on_delete=models.SET_DEFAULT:删除关联数据,与之关联设置默认值...(前提FK字段需要设置默认值on_delete=models.SET:删除关联数据: a、与之关联设置为指定值,设置:models.SET(值) b、与之关联设置为可执行对象返回值,设置

    6.5K20

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

    场景 我们用DjangoModel时,有时候需要关联外键。关联外键时,参数:on_delete几个配置选项到底是干嘛呢,你知道吗? 参数介绍 models.CASCADE 级联删除。...Django会模拟SQL约束行为,在删除此条数据时,同事删除外键关联对象。...” models.PROTECT 防止删除引用对象。与上个恰恰相反,是防止关联数据被删除。 models.SET_NULL 设置关联外键内容为null。只有设置了null=True时可用。...当数据被删除时,被关联外键内容被设置为null。 models.SET_DEFAULT 将外键设置默认值。外键必须设置默认值 。...欢迎查看我这个系列其他文章: django-admin和manage.py用法[1] 编写自定义manage.py 命令[2] Django组件——forms组件[3] 还有更多内容,请查看Bigyoung

    1.9K10

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

    本文将讲述设置外键操作,关于外键更多知识,大家可以看看数据库知识。当然我依旧会在注释中做出一些解释。 现在我们已经有了出版社这张表,现在我们添加书籍这张表。...在models.py内容如下: from django.db import models # Create your models here. """ 书和出版社之间是有关系。...""" class Publisher(models.Model): """ Djangomodels会默认在数据库中创建主键 """ name = models.CharField...第二个参数on_deleteDjango2.0之后必须填写,models.CASCADE表示级联删除。级联删除意味着,我删除了某个出版社,那么该出版社对应所有书籍也被删除。...models.SET_DEFAULT:表示删除后设为默认值 models.SET_NULL:删除后设为空值 models.SET(x):删除后设为某个值 ''' 增加一张表之后,

    56540

    动态设置djangomodel field默认值操作步骤

    问题背景 djangomodel field需要动态设置默认值,具体案例如下: 原始代码如下,model是Application,其中字段ignore_fort默认值设置为False class Application...ModelChoiceField:过滤查询集并将默认值设置为对象 我有一个Django Form类定义喜欢这个在Models: class AccountDetailsForm(forms.Form...AccountDetailsForm() form.fields[‘adminuser’].queryset = User.objects.filter(account=accountid) 警告:您不是通过将字典传递到您示例中表单来设置默认值...要设置默认值,use the initials argument....form = AccountDetailsForm(initial={‘adminuser’:’3′}) 翻译自:这里 以上这篇动态设置djangomodel field默认值操作步骤就是小编分享给大家全部内容了

    3K50

    模型

    ,表示允许为空,默认值是False null # 如果为True,则该字段允许为空白,默认值是False blank # 字段名称,如果未指定,则使用属性名称 db_column # 若值为True..., 则在表中会为此字段创建索引,默认值是False db_index # 默认 default # 若为True,则该字段会成为模型主键字段,默认值是False,一般作为AutoField选项使用...=models.CASCADE) on_delete选项:当删除关联表中数据时,当前表与其关联行为。...删除关联数据,引发错误IntegrityError models.DO_NOTHING # 删除关联数据,引发错误ProtectedError models.PROTECT # 删除关联数据,与之关联设置为...null(前提FK字段需要设置为可空) models.SET_NULL # 删除关联数据,与之关联设置默认值(前提FK字段需要设置默认值models.SET_DEFAULT # 删除关联数据

    19230

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

    ' 报错原因其实一看就能知道,这个地方是说关于一些模型在一对一关联和一对多关联(外键)时候需要指定 on_delete 参数才行,多对多没有这个设置。...因为在 Django 1.x 版本中,这个参数是有默认值,但是 Django 2.x 没有指定,所以需要显示设定一个值。...以下是主要几个设置意义: on_delete=models.CASCADE, # 删除关联数据,与之关联也删除 on_delete=models.DO_NOTHING, # 删除关联数据...,与之关联设置为null(前提该字段需要设置为可空,一对一同理) on_delete=models.SET_DEFAULT, # 删除关联数据,与之关联设置默认值(前提FK字段需要设置默认值,..., verbose_name='网站分类', blank=True, null=True, on_delete=models.SET_NULL) # 当工具分类删除后把分类设置为空 # class

    95020

    Django数据模型中关于on_delete使用

    1、常见使用方式(设置为null) 2、关于别的属性介绍 CASCADE:这就是默认选项,级联删除,你无需显性指定它。...SET_NULL: 置空模式,删除时候,外键字段被设置为空,前提就是blank=True, null=True,定义该字段时候,允许为空。...SET_DEFAULT: 置默认值,删除时候,外键字段设置默认值,所以定义外键时候注意加上一个默认值。...SET(): 自定义一个值,该值当然只能是对应实体了 3、补充说明:关于SET()使用 **官方案例** def get_sentinel_user():     return get_user_model...class MyModel(models.Model):     user = models.ForeignKey(         settings.AUTH_USER_MODEL,         on_delete

    1.2K10

    测试开发进阶(二十二)

    字段 max_length 最大长度 unique 设置当前参数唯一 verbose_name 设置人性化字段名 help_text 用于API文档中中文名 null 允许为空 black 设置前端可以不传递...default 设置默认值 class Projects(models.Model): """ 创建Projects模型类 """ name = models.CharField...修改展示部分 fields 指定在修改「新增」中需要显示字段 list_display 指定要列出字段 from django.contrib import admin from .models...' 对象:import导入from projects.models import Projects -> Projects 第二个参数 设置是:当父表删除之后,该字段处理方式 models.CASCADE...:子表也会被删除 models.SET_NULL:当前外键会被设置为None models.PROTECT:会报错 models.SET_DEFAULT:设置默认值,同时需要指定默认值,null=True

    64930

    django自定义非主键自增字段类型详解(auto increment field)

    1.django自定义字段类型,实现非主键字段自增 # -*- encoding: utf-8 -*- from django.db.models.fields import Field, IntegerField...) to, # 要进行关联表名 to_field=None, # 要关联表中字段名称 on_delete=None, # 当删除关联表中数据时,当前表与其关联行为 - models.CASCADE...null(前提FK字段需要设置为可空) - models.SET_DEFAULT,删除关联数据,与之关联设置默认值(前提FK字段需要设置默认值) - models.SET,删除关联数据, a....与之关联设置为指定值,设置:models.SET(值) b....to_field=None # 要关联表中字段名称 on_delete=None, # 当删除关联表中数据时,当前表与其关联行为 ###### 对于一对一 ###### # 1.

    2.3K10

    Django model.py表单设置默认值允许为空操作

    blank=True 默认值为blank=Flase,表示默认不允许为空, blank=True admin级别可以为空 null=True 默认值为null=Flase,表示默认不允许为空...null=True 数据库级别可以为空 补充知识:Django中models.py字段选项null和blank区别和使用 1.null 如果null=True,数据库中空值储存为NULL,默认为False...需要注意是,这不同于null,null纯粹是与数据库相关。...3.当一个CharField字段都有unique=True并blank=True设置。 在这种情况下,null=True需要避免在使用空值保存多个对象时出现唯一约束违规。...以上这篇Django model.py表单设置默认值允许为空操作就是小编分享给大家全部内容了,希望能给大家一个参考。

    6.1K20

    SpringBoot@Value注解设置默认值

    在Spring Boot中,如果使用@Value注解对属性进行赋值,但如果在配置文件或启动参数中未指定对应参数值,则会抛出异常。异常信息往往是对应注入属性类实例化失败。...此时,需要对@Value对应值进行配置,或设置默认值。...设置方法如下: @RestController public class ConfigController { // ①未指定默认值 @Value("${user.username}") private...; } 针对以上两个@Value使用,如果username对应属性值未在application.properties文件中配置或未在java -jar命令中传递参数,那么启动时将抛出异常。...而针对第二种方式,通过“:”指定如果获取不到该参数值时所使用默认值,则启动时不会出现异常信息。 原文链接:《SpringBoot@Value注解设置默认值

    14.8K20

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

    ,当前model是修改过,原来migrations已经被删除,但是,重新生成migrations使用递增整数记名,所以,在django_migrations表中0001,0002等前面几个数字文件都已被记录...这可能是因为所定义某个模型定义了外键,而在新版Django中外键必须指定on_delete属性,例如user = models.ForeignKey(User, verbose_name='用户',...on_delete=models.SET_NULL)此时是因为该属性指定为models.SET_NULL,即在父模型删除数据后,对应子模型记录字段设为空,但是在定义该字段时并未允许该字段为空,因此解决方法有两种...修改on_delete属性 修改该属性为其他值,如models.CASCADE、models.SET_DEFAULT等。...' 这是因为django3及以上版本中已经没有six插件,可以将django降到2版本,也可以将安装six.py复制到django/utils目录下,操作如下: ?

    3.2K20
    领券