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

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

0904自我总结 django模型中有外键关系的表删除相关设置 一.一对一 例如有Author、AuthorDetail两表 author = models.OneToOneField(to='Author...(多的一方):出版社删除书外键不动,书删除没有任何影响 2)出版社找书用 外键related_name(books),书找出版社 外键字段(publish) 3)db_constraint断开表关联..., default=1, 注意:on_delete必须声明models.DO_NOTHING为删除级联关系, models.CASCAD为级联关系,'SET_NULL'置空,SET_DEFAULT设为默认值...两者区别 models.SET关联表内容删了,关联的相关内容不会删除 models.CASCAD关联表内容删了,关联的相关内容会删除 db_constraint关系断开后,但是不影响联表查询 四.多对多关系...3)db_constraint断开表关联,on_delete不存在(不设置,本质在第三张表中设置,且一定是级联)

3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    在 django 中如何自定义 widget(控件)适用于 xadmin

    上篇文章介绍了怎么把django自带的admin替换成xadmin,这篇文章介绍下怎么自定义一个django的widget,关于widget的使用在django的admin和xadmin中均适用。...基础知识 在开始之前,你得先看下django的文档:https://docs.djangoproject.com/en/2.1/ref/forms/widgets/,知道要定义widget的话,需要实现的接口...依然是在django的文档中:https://docs.djangoproject.com/en/2.1/topics/forms/modelforms/ 。...再来捋捋整个流程,关键的概念是:Model,ModalAdmin,Form,Field,Widget。只要搞清了这几个东西之间的关系对如何定制widget就不陌生了。...widget对应的其实就是一个field,每个field都对应了一种widget,有兴趣的可以去django/forms/fields.py中查看。

    2.3K20

    django:DateTimeField如何自动设置为当前时间并且能被修改 ——django日期时间字段的使用

    DateTimeField.auto_now 这个参数的默认值为false,设置为true时,能够在保存该字段时,将其值设置为当前时间,并且每次修改model,都会自动更新。...需要注意的是,设置该参数为true时,并不简单地意味着字段的默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序中手动为字段赋值;如果使用django再带的admin管理器,那么该字段在admin...DateTimeField.auto_now_add 这个参数的默认值也为False,设置为True时,会在model对象第一次被创建时,将字段的值设置为创建时的时间,以后修改对象时,字段的值不会再更新...admin.ModelAdmin): readonly_fields = ('save_date', 'mod_date',) admin.site.register(Tag, YourAdmin) 如何将创建时间设置为...实际场景中,往往既希望在对象的创建时间默认被设置为当前值,又希望能在日后修改它。怎么实现这种需求呢? django中所有的model字段都拥有一个default参数,用来给字段设置默认值。

    7.3K80

    【deepseek用例生成平台-03】前后端分离的@vuecli和django如何连接?

    这个就是用来处理前后端连接的一个中间件。...index.html,而这个index.html就会根据前面设置的静态模版路径,去vue的dist打包目录中招,vue打完包的入口文件就叫index.html) from django.views.generic...,前面我们正好设置后台要去这个static文件夹去找静态资源,这不就连上了么) 到此,算是全部设置完了,接下来就进行联调测试: 先点击pycharm右上角启动器,来启动django后台服务: 然后在Terminal...然后要用django后台的路由和端口(127.0.0.1:8000),打开浏览器,能看到的不是django,而是Vue的欢迎页,这就算成功了! 这里需要注意的点: 1....但需要前端启动服务: npm run serve 至于0.0.0.0:8000 这个就放弃别用了 ,虽然会在django启动后的控制台自动展示,但这不是作为应该访问的地址,是因为我们改动了启动器后产生的

    4100

    os.environ详解-DJANGO_SETTINGS_MODULE 环境变量是如何设置的

    在学习Django的setting文件时,有这么一段话: 指定配置文件 DJANGO_SETTINGS_MODULE 使用Django时要通知Django当前使用的是哪个配置文件。...当我们使用manage.py运行起本地的web服务器时,为了让Django知道使用哪个配置文件,就指定了DJANGO_SETTINGS_MODULE的环境变量的路径,我们看下manage.py 复制代码...', 'Django_2018.settings') #使用setdefault的方式添加新的环境变量 try: from django.core.management import execute_from_command_line...os.environ['PROMPT']:设置提示符。 复制代码 linux: os.environ['USER']:当前使用用户。...之前 目的是为了任何一个django project中的*.py文件都能够正常的使用项目中的数据模型操作。

    8510

    【愚公系列】2022年01月 Python教学课程 49-Django框架之Session和Redis

    2.存储方式 在settings.py文件中,可以设置session数据的存储方式,可以保存在数据库、本地缓存等。 2.1 数据库 存储在数据库中,如下设置可以写,也可以不写,这是默认存储方式。...数据库中的表如图所示 表结构如下 由表结构可知,操作Session包括三个数据:键,值,过期时间。 2.2 本地缓存 存储在本机内存中,如果丢失则不能找回,比数据库的方式读写更快。...网络连接 1) 安装扩展 pip install django-redis 2)配置 在settings.py文件中做如下设置 CACHES = { 'default': { '...,而是其他地址,访问Django时,可能出现Redis连接错误,如下: 解决方法: 修改redis的配置文件,添加特定ip地址。...如果value为None,那么session有效期将采用系统默认值, 默认为两周,可以通过在settings.py中设置SESSION_COOKIE_AGE来设置全局默认值。

    41430

    记录,Django如何利用已经存在的数据库中的表反向生成对应的Model

    Django框架中,model模型文件是操作联系数据库的桥梁,通过对于模型文件的编写可以不关心数据库,直接操作本身即可,不过关于模型层model文件的编写,需要通过大量的事件才能掌握,本渣渣一直不得要领...这就是下面本渣渣的记录,Django如何利用已经存在的数据库中的表反向生成对应的Model,直接用现成的数据库,数据库文件表来生成对应的model。...Navicat for MySQL 而现成的数据库的表文件,可以通过数据库操作工具,比如Navicat for MySQL,推荐使用它来创建表文件,非常简单既能完成一个数据表文件的设置。 ?...它是一套单一的应用程序,能同时连接 MySQL 和 MariaDB 数据库,并与 Amazon RDS、Amazon Aurora、Oracle Cloud、Microsoft Azure、阿里云、腾讯云和华为云等云数据库兼容...:mysqlclient pip install mysqlclient 步骤三:使用根据数据库表反向生成Model的命令(关键) 使用这条命令,会根据设置的数据库中的表在自动生成对应的Model代码

    2.6K20

    【Django】 开发:静态文件,应用和模型层

    ' 'django.db.backends.postgresql' mysql 引擎如下: ‘django.db.backends.mysql’ NAME 指定要连接的数据库的名称 'NAME': 'mywebdb...'PASSWORD':'123456' HOST 连接数据库时使用哪个主机。 'HOST':'127.0.0.1' PORT 连接数据库时使用的端口。...,表示该列为主键,如果指定一个字段为主键,则此数库表不会创建id字段 blank 设置为True时,字段可以为空。...默认为False,如果此选项为False建议加入default选项来设置默认值 default 设置所在列的默认值,如果字段选项null=False建议添加此项 db_index 如果设置为True...(将对所有现有行设置此列的空值) 2)退出,让我在models.py中添加一个默认值 选择一个选项: 错误原因 当对模型类新添加一个字段时可出现该错误 原理是 添加新字段后,数据库不知道原来已有数据对于新建字段该如何赋值

    1.8K20

    初识Django之前端后端与数据库的配置

    设置完成后我们的pycharm就是数据库的客户端了,但是这时Django还需要对数据库的进一步配置才能使用这个数据库。...Django默认自带一个小型数据库sqlite(仅做测试使用,对日期格式不兼容),这里我们使用Django连接主流数据库MySQL。...Django连接MySQL的模块,如果我们不配置的话Django会报错让装MySQLdb,但是这里我们使用pymysql,具体配置:在Django项目名下或者应用名下的__init__.py中书写 import...pymysql pymysql.install_as_MySQLdb() 到这里我们的Django和MySQL数据库之间的连接配置已经做好了。...,charField必须要指定max_length参数 5.字段允许为空但必须要设置默认值,否则pycharm会提示让你创建默认值 6.定义好模型表类后需要执行数据库迁移命令才能在数据库中将表创建出来

    1.6K21

    Django 2.1.7 模型类 - 字段类型

    上一篇Django 2.1.7 模型 - 使用mysql数据库连接访问讲述了如何使用mysql作为数据库,执行模型查询数据,并返回渲染页面。...本篇章开始将继续看看模型类还可以设置哪些字段类型 参考文献 https://docs.djangoproject.com/zh-hans/2.1/ref/models/fields/ 前面篇章设置好的两个模型类...在官方文档中,关于字段类型的描述非常多,如下: 模型字段的定义属性 django会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列...db_index:若值为True, 则在表中会为此字段创建索引,默认值是False。 default:默认值。...unique:如果为True, 这个字段在表中必须有唯一值,默认值是False。

    1.2K10

    Django 2.1.7 模型类 - 字段类型

    上一篇Django 2.1.7 模型 - 使用mysql数据库连接访问讲述了如何使用mysql作为数据库,执行模型查询数据,并返回渲染页面。...本篇章开始将继续看看模型类还可以设置哪些字段类型 参考文献 https://docs.djangoproject.com/zh-hans/2.1/ref/models/fields/ 前面篇章设置好的两个模型类...在官方文档中,关于字段类型的描述非常多,如下: 模型字段的定义属性 django会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列...db_index:若值为True, 则在表中会为此字段创建索引,默认值是False。 default:默认值。...unique:如果为True, 这个字段在表中必须有唯一值,默认值是False。

    1.7K30

    ORM常用字段介绍

    unique 如果设置为unique=True 则该字段在此表中必须是唯一的 db_index 如果db_index=True 则代表着为此字段设置索引。 default 为该字段设置默认值。...字段参数 to 设置要关联的表 to_field 设置要关联的表的字段 related_name 反向操作时,使用的字段名,用于代替原反向查询时的'表名_set'。...null(前提FK字段需要设置为可空) models.SET_DEFAULT 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值) models.SET 删除关联数据, a....字段参数 to 设置要关联的表。 to_field 设置要关联的字段。 on_delete 同ForeignKey字段。 ManyToManyField 用于表示多对多的关联关系。...但我们也可以手动创建第三张表来管理多对多关系,此时就需要通过through来指定第三张表的表名。 through_fields 设置关联的字段。

    2.5K10

    【愚公系列】2022年01月 Python教学课程 40-Django框架之模型属性详解

    模型类如果未指明表名,Django默认以小写app应用名_小写模型类名为数据库表名。...可通过db_table指明数据库表名。 2) 关于主键 django会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列。...如果为True,则该字段允许为空白,默认值是False db_column 字段的名称,如果未指定,则使用属性的名称 db_index 若值为True, 则在表中会为此字段创建索引,默认值是False...,默认值是False null是数据库范畴的概念,blank是表单验证范畴的 6) 外键 在设置外键时,需要通过on_delete选项指明主表删除数据时,对于外键引用表数据如何处理,在django.db.models...,仅在该字段null=True允许为null时可用 SET_DEFAULT设置为默认值,仅在该字段设置了默认值时可用 SET()设置为特定值或者调用特定方法 DO_NOTHING不做任何操作,如果数据库前置指明级联性

    1.4K20

    Django框架学习(三)

    Django中: 1、设置模板目录 在工程中创建模板目录templates。...db_index 若值为True, 则在表中会为此字段创建索引,默认值是False default 默认 primary_key 若为True,则该字段会成为模型的主键字段,默认值是False,一般作为...AutoField的选项使用 unique 如果为True, 这个字段在表中必须有唯一值,默认值是False 外键 在设置外键时,需要通过on_delete选项指明主表删除数据时,对于外键引用表数据如何处理...python manage.py makemigrations 2、迁移生成表 python manage.py migrate mysql数据库中: desc 表名;查看表结构 在我们迁移的时候,Django...的子应用会默认为我们创建一些表, 4.4演示工具使用 4.4.1shell工具 Django的manage工具提供了shell命令,帮助我们配置好当前工程的运行环境(如连接好数据库等),以便可以直接在终端中执行测试

    1.8K40

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

    null(前提FK字段需要设为可空) - models.SET_DEFAULT 删除关联数据,与之关联的值设为默认值(前提FK字段设置默认值)...与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象) related_name=None # 反向操作时,使用的字段名,用于代替表名_set related_query_name...=None,# 反向操作时,使用的连接前缀,用于替换【表名】 limit_choices_to=None, # 在Admin或ModelForm中显示关联数据时,提供的条件,字典类型...related_name=None # 反向操作时,使用的字段名,用于代替表名_set related_query_name=None # 反向操作时,使用的连接前缀...django的数据操作,django内置了一款非常到位的系统管理员登陆设计系统,首先我们创建下用户,如下: python manage.py createsuperuser 然后我们按照要求一步步设置参数

    2.1K00

    Django教程 —— 模型类详解

    引言 在之前的 Django模型设计 中简单的介绍了如何定义模型类,在这篇中将做一个汇总。让大家更加了解Django模型类。...: 当前选择的数据库支持字段的类型 渲染管理表单时使用的默认html控件 在管理站点最低限度的验证 Django 会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后...db_index 若值为True, 则在表中会为此字段创建索引,默认值是False。 default 默认值。...primary_key 若为True,则该字段会成为模型的主键字段,默认值是False。 unique 如果为True, 这个字段在表中必须有唯一值,默认值是False。...verbose_name = u'图书信息' # 表备注 # 表名复数形式,如果不设置末尾会多一个s verbose_name_plural

    1.7K20

    django 1.8 官方文档翻译: 2-6-2 遗留的数据库

    一旦你的Django环境建立好之后,你可以按照这个大致的流程,整合你的现有数据库。 向Django提供你的数据库参数 你需要告诉Django你的数据库连接参数,以及数据库的名称。...请修改DATABASES设置,为’默认’ 连接的以下键赋值: NAME ENGINE USER PASSWORD HOST PORT 自动生成模型 Django自带叫做inspectdb的工具,可以按照现有的数据库创建模型...一旦你创建好了你的模型,把文件命名为models.py,然后把它放到你应用的Python包中。然后把应用添加到你的INSTALLED_APPS 设置中。...管理表的生命周期,你需要把managed选项改为 True(或者简单地把它移除,因为True是默认值)。...安装Django核心表 接下来,运行migrate命令来安装所有所需的额外的数据库记录,比如后台权限和内容类型: $ python manage.py migrate 测试和调整 上面就是所有基本的步骤了

    24030
    领券