首页
学习
活动
专区
圈层
工具
发布

django-ForeignKey,OneToOneField,ManyToManyField

进入到django自带的related.py中,可以看到 1.ForeignKey 初始化的参数有: to, on_delete, related_name=None, related_query_name...models.Model): book = models.ForeignKey(to='Author',on_delete=models.CASCADE,to_field='id') to:被关联表的名称...on_delete:删除带有外键的信息时,定义了删除的操作: CASCADE:删除作者信息一并删除作者名下的所有书的信息; PROTECT:删除作者的信息时,采取保护机制,抛出错误:即不删除Books...的内容; SET_NULL:只有当null=True才将关联的内容置空; SET_DEFAULT:设置为默认值; SET( ):括号里可以是函数,设置为自己定义的东西; DO_NOTHING:字面的意思...,啥也不干,你删除你的干我毛线关系; to_field:被关联的字段,一般是主键,也可以是值唯一的字段 2.OneToOne 初始化参数有: to, on_delete, to_field=None,

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

    django中ModelForm多表单组合的解决方案

    3、通用视图 django.views.generic.ListView和django.views.generic.edit下的CreateView, UpdateView, DeleteView都是通用视图...这里仅以CreateView为例说明,因为它相对最复杂,接下来的多ModelForm的提交也是在CreateView上进行的。...比如CreateView就会由django自动的把页面上POST出的form数据解析到model生成的表单(或者form_calss指定的ModelForm类型表单),同时调用表单的save方法将数据添加到模型对应的数据库表中...我们看看CreateView的继承关系: 简单介绍下CreateView通用视图中每个父类的作用。...在django的模型中就体现为ForeignKey、ManyToManyField或者OneToOneField。而在业务逻辑上,需要体现为一张表单,对应着数据库里的多张表。

    4.4K20

    Django使用django-apscheduler的问题

    Django定时任务 由于业务需要,后台要有一个定时任务的功能,起初考虑单独出来使用Linux系统的corn来实现。但是考虑到这样会很不方便。...于是便寻找定时任务的模块,就找到了APScheduler,考虑到要在Django中使用,后来就采用了django-apscheduler来作为定时任务的模块,但是这个模块本身有bug。...Django定时任务不要使用django-apscheduler模块,直接使用APScheduler模块即可。...APScheduler官方使用指南,在这份指南中明确指出django-apscheduler并不是官方支持的。...使用APScheduler 现在,我们避免了django-apscheduler模块抛出异常问题,但是我们还有一个问题等待解决,那就是uWsgi使用多进程模式启动Django项目,因此我们会有多个进程去执行这个定时任务

    2.6K30

    第 03 篇:创建 Django 博客的数据库模型

    # 而对于标签来说,一篇文章可以有多个标签,同一个标签下也可能有多篇文章,所以我们使用 # ManyToManyField,表明这是多对多的关联关系。...提示: 在本教程中我们会教你这些类型的使用方法,但以后你开发自己的项目时,你就需要通过阅读 django 官方文档 关于字段类型的介绍[1] 来了解有哪些数据类型可以使用以及如何使用它们。...而对于标签来说,一篇文章可以有多个标签,同一个标签下也可能有多篇文章,所以我们使用 ManyToManyField,表明这是多对多的关联关系。...理解多对一和多对多两种关联关系 我们分别使用了两种关联数据库表的形式:ForeignKey和 ManyToManyField。 ForeignKey ForeignKey 表明一种一对多的关联关系。...详细示例[3]•django ManyToManyField 简介[4]•django ManyToManyField 详细示例[5] References [1] 关于字段类型的介绍: https:/

    88040

    创建 Django 博客的数据库模型

    # 而对于标签来说,一篇文章可以有多个标签,同一个标签下也可能有多篇文章,所以我们使用 ManyToManyField,表明这是多对多的关联关系。...在本教程中我们会教你这些类型的使用方法,但以后你开发自己的项目时,你就需要通过阅读Django 官方文档 关于字段类型的介绍 来了解有哪些数据类型可以使用以及如何使用它们。...而对于标签来说,一篇文章可以有多个标签,同一个标签下也可能有多篇文章,所以我们使用 ManyToManyField,表明这是多对多的关联关系。...理解多对一和多对多两种关联关系 我们分别使用了两种关联数据库表的形式:ForeignKey 和 ManyToManyField。 ForeignKey ForeignKey 表明一种一对多的关联关系。...Django ManyToManyField 简介 Django ManyToManyField 详细示例 总结 本章节的代码位于:Step3: blog models。

    1.8K60

    python-Django-URL 路由(二)

    Django URL路由的示例 下面是一个简单的Django应用程序的示例,它使用URL路由来处理客户端请求。...第三个URL模式是“post/slug:slug/”,它将请求映射到我们之前定义的post_detail视图函数,并使用一个命名捕获组来表示文章的slug。...from django.views.generic.edit import CreateView, UpdateView from django.contrib.auth.decorators import...视图函数获取文章的slug,并使用get_object_or_404函数从数据库中获取文章对象。然后,视图函数将文章对象传递给包含文章详细信息的HTML模板。...这个视图函数使用Django的通用视图类CreateView来处理创建新文章的表单,然后重定向到post_list视图函数,这个视图函数将渲染一个包含所有文章的列表的HTML模板。

    1.2K20

    django 模型关系

    模型关系 关系数据库的威力体现在表之间的相互关联,Django提供了三种最常见的数据库关系:多对一 (many-to-one),多对多(many-to-many),一对一(one-to-one)...多对一关系 多对多关系 一对一关系 多对一 django是使用django.db.models.ForeignKey 定义多对一关系 ForeignKey需要一个位置参数来指定本Model关联的Model...,ForeignKey关联的Model 是"一", ForeignKey所在的Model是"多" 比如汽车和制造商的例子,一辆汽车只能属于一个制造商,但是一个制造商有多辆汽车,这个关系,用Django...clear() #从关联的对象集中删除所有的对象 多对多 要实现多对多,就要使用django.db.models.ManyToManyField类,和ForeignKey一样,它也有一个位置参数,用来指定和它关联的...(Group) 建议以被关联模型名称的复数形式做为 ManyToManyField 的名字 在哪个模型中设置 ManyToManyField 并不重要,在两个模型中任选一个即可——不要在两个模型中都设置

    1.9K30

    django 1.8 官方文档翻译: 2-1-1 模型语法(初稿)

    Django 根据字段类的类型确定以下信息: 数据库当中的列类型 (比如,INTEGER, VARCHAR)。 Django 的用户管理界面所使用的部件(widget)。...通常来说,如果启用了 Django 管理后台,你就可以在后台将 ManyToManyField 实例添加到关联对象中。...多对多关系中的其他字段 处理类似搭配 pizza 和 topping 这样简单的多对多关系时,使用标准的 ManyToManyField 就可以了。...你可以将其他字段放在中介 model 里面,而主 model 的 ManyToManyField 使用 through 参数来指向中介 model 。...小心使用 related_name 如果你在 ForeignKey 或 ManyToManyField 字段上使用 related_name 属性,你必须总是为该字段指定一个唯一的反向名称。

    3.8K30

    Orm之中介模型

    什么是中介模型 中介模型针对的是ManyToMany(多对多)的时候第三张表的问题, 中介模型其实指的就是我们不通过Django创建第三张表,如果自己不创建第三张表,而是由django给我们创建,那就不存在你中介模型...= models.ManyToManyField(to='Author') class Author(models.Model): name = models.CharField(max_length...=32) 这时候Django会自动帮我们创建地上那张表,如下: ?...图中可以看出,Django创建ForeignKey的时候会在字段后自动添加'_id',所以,我们在写第三张表字段的时候就不用加_id了,如下: class Book(models.Model):...自建表的区别 1、中介模型的第三张表是自己创建的,所以可以自己任意添加额外的字段,而Django自创建的第三张表的字段是固定的 2、中介模型没有add,set  , remove,clear 方法

    93250

    Django内置的通用类视图CBV及示例

    django自带的view如下表所示: 类名 功能 例子 View 基本View, 可以在任何时候使用 见后面详细介绍 RedirectView 重新定向到其他URL 将访问"/log-in/"的用户重新定向到..."/login/" TemplateView 显示Django HTML template 一般网站中使用模板显示的页 ListView 显示对象列表 文章列表页 DetailView 显示对象详情 文章详细页...参数,如果找到了这个参数,该方法使用这个参数的值执行一个基于逐渐的查询.如果这个参数没有找到,该方法查找slug_url_kwarg参数,使用slug_field字段执行针对slug的查询.当query_pk_and_slug...import DetailView from django.views.generic.edit import CreateView, UpdateView, DeleteView from django.core.urlresolvers...可以直接用Django通用视图里的UpdateView和CreateView。

    4.3K10

    Django内置的通用类视图及实例

    : 指定在上下文中使用的变量的名称. pk_url_kwarg: URLconf中,包含逐渐的关键字参数的名称.默认为'pk'. get_context_data:返回显示对象的上下文数据....参数,如果找到了这个参数,该方法使用这个参数的值执行一个基于逐渐的查询.如果这个参数没有找到,该方法查找slug_url_kwarg参数,使用slug_field字段执行针对slug的查询.当query_pk_and_slug...显示用于编辑现有对象的表单的视图,重新显示具有验证错误信息的视图,并且保存对象.这里使用从对象模型自动生成的表单(除非手动制定表单类)....django.views.generic.edit import CreateView, UpdateView, DeleteView from django.core.urlresolvers import...可以直接用Django通用视图里的UpdateView和CreateView。

    4K40

    django 1.8 官方文档翻译:2-1-1 模型语法

    这个例子中的CREATE TABLE SQL 语句使用PostgreSQL 语法格式,要注意的是Django 会根据设置文件 中指定的数据库类型来使用相应的SQL 语句。...这些选项帮助定义关系应该如何工作;它们都是可选的。 多对多关系中的其他字段 处理类似搭配 pizza 和 topping 这样简单的多对多关系时,使用标准的ManyToManyField  就可以了。...源模型的ManyToManyField 字段将使用through 参数指向中介模型。...中介模型有一些限制: 中介模型必须有且只有一个外键到源模型(上面例子中的Group),或者你必须使用ManyToManyField.through_fields 显式指定Django 应该使用的外键。...小心使用 related_name 如果你在 ForeignKey或  ManyToManyField字段上使用  related_name属性,你必须总是为该字段指定一个唯一的反向名称。

    5.9K20
    领券