首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

基于Django OneToOneField和ForeignKey区别详解

relate_name, 则是对方类名小写_set [<Car2: Mazda ] 补充知识:Django ForeignKey,ManyToManyField和OneToOneField辨析 导引...一般来说,一个模型对于数据库中一个表单字段(Fields)是模型重要和唯一组成部分,他们由类别的属性值所指定。...one_to_one = False 由此可见,ForeignKey是many_to_one类型,即“一对多”,我们引用官方文档给出示例: from django.db import models...,再删除此字段信息时候同时删除包含ForeignKey字段目标(object) PROTECT 通过django.db.IntegrityError中ProtectedError来保护此字段不被删除...以上这篇基于Django OneToOneField和ForeignKey区别详解就是小编分享给大家全部内容了,希望能给大家一个参考。

2.3K20

Django外键(ForeignKey)操作以及related_name作用

之前已经写过一篇关于Django外键文章,但是当时并没有介绍如何根据外键对数据操作,也就是如何通过主表查询子表或者通过子表查询主表信息 首先我定义了两个模型,一个是老师模型,一个是学生模型,...,并获取老师相关信息 返回一个teacher对象,接下来就是查询teacher相关联学生对象,在这里有一个需要注意点,django默认情况下每一个主表对象都有一个是外键属性,可以通过它查询到所有关于子表信息...migrate 从上图可以看到和之前_set操作效果是一样,这两个方法是相同,所以如果觉得比较麻烦的话,可以在定义主表外键时候,直接就给外键定义好名称使用related_name...上面的查询主要是通过主表查询子表信息 下面说一下如何通过子表查询主表相关信息,也就是查询一个学生所对应老师信息 首先需要先获取一个子表对象,那么就可以通过定义外键时候那个外键字段名获取关于主表信息了...比如我得到了一个student对象,然后我想要得到这个student对象对应主表teache中信息的话,就使用 student.teacher 获取,其中这个teacher就是在子表中定义外键字段

1.9K10

完美解决Django2.0中models下ForeignKey()问题

Django2.0中编写models类下ForeignKey book = models.ForeignKey(‘BookInfo’) django2.0与之前1.8不同, 错误: book...’ 解决方法: book = models.ForeignKey(‘BookInfo’, on_delete=models.CASCADE,) 加上on_delete参数就可以了!!!...补充知识:Django ForeignKey ondelete CASCADE:删除一并删除关联表下所有的信息; PROTECT:删除信息时,采取保护机制,抛出错误:即不删除关联表内容; SET_NULL...:只有当null=True才将关联内容置空; SET_DEFAULT:设置为默认值; SET( ):括号里可以是函数,设置为自己定义东西; DO_NOTHING:字面的意思,啥也不干,你删除你干我毛线关系...以上这篇完美解决Django2.0中models下ForeignKey()问题就是小编分享给大家全部内容了,希望能给大家一个参考。

77110

django 字段类型_access数据库类型是

大家好,又见面了,我是你们朋友全栈君。 字段类型 字段类型指使用Django ORM创建数据库时支持数据字段类型。...常用字段 (1) AutoField 自增整型字段,必填参数primary_key=True,则成为数据库主键,无该字段时,django会自动创建主键id字段。...此字段默认表单小部件是TextInput。 (4) BinaryField 一个用于存储原始二进制数据字段,可以分配bytes,bytearray或memoryview。...默认表单格式为TextInput。 (18) TextField 文本字段。默认表单小部件是Textarea,如果指定max_length属性,将反映在Textarea自动生成表单字段中。...Django会在DELETE CASCADE上模拟 SQL约束行为,并删除包含ForeignKey对象。 **DO_NOTHING:**不采取行动。

3.8K30

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

#GET显示表单时,如果要显示初始值,请用initial参数           self.initial = initial or {}          #模板中显示{{form}}时,默认是以...所以,基本表单功能看BaseForm已经足够了。 2、从模型创建表单 django对于MVC中C与M间映射是非常体贴,集中体现中Model模型中(比如模型权限与用户认证)。...中告诉django需要在表单中创建哪些字段。...比如CreateView就会由django自动把页面上POST出form数据解析到model生成表单(或者form_calss指定ModelForm类型表单),同时调用表单save方法将数据添加到模型对应数据库表中...在django模型中就体现为ForeignKey、ManyToManyField或者OneToOneField。而在业务逻辑上,需要体现为一张表单,对应着数据库里多张表。

3.3K20

Django 学习笔记之模型(上)

这个字段默认表单部件是 CheckboxInput。 5)CharField:字符字段。对于比较大文本内容,请使用 TextField 类型。这个字段默认表单部件是 TextInput。...max_length 表示字段允许最大字符串长度。这将在数据库中和表单验证时生效 6)TextField:大文本字段。默认表单部件是一个 Textarea。 7)DateField:日期。...在我们范例模型中,一家出版社 publisher 可以出版很多书 Book。在数据库中, Django 使用 ForeignKey 字段名称+ "_id" 做为数据库中列名称。...在Django 2.0中,这将是一个必传参数。 2)OneToOneField 它属于 ForeignKey特例。...2)blank:如果为 True ,该字段允许为空值,不填写默认为 False。这个字段是用于处理表单数据输入验证。 3)primary_key:如果为 True,那么这个字段就是模型主键。

1.7K30

django-xadmin根据当前登录用户动态设置表单字段默认值方式

相信你一定会设置一个普通字段默认值: class Offer(models.Model): salary = models.CharField(max_length=64, blank=True,...default=’6000′, verbose_name=’薪资待遇’) 相信你还能动态设置外键字段默认值: class Interview(models.Model): department...补充知识:Django通过Ajax利用FormData动态提交表单(包括文件,字符串) 0 需求背景 有的时候我们上传表单,经过后台处理之后再分发回原来页面,这时必定会刷新这个页面。...为了解决这个问题,我们采用JS动态提交表单元素,如:file、text等类型,可以很好解决这一问题。...以上这篇django-xadmin根据当前登录用户动态设置表单字段默认值方式就是小编分享给大家全部内容了,希望能给大家一个参考。

1.9K20

Django模型

默认创建主键列属性为id,也可以使用pk,意为primary key. 字段名称中不能出现双下划线,因为这是Django查询语法之一。...下面是Django中常用字段类型详情 字段类型 类型 说明 BigAutoField 自动增长BigIntegerField,通常不用指定,不指定时Django会自动创建属性名为id自动增长属性...null参数是数据库层面的,设置null=True之后,表示数据库字段可以为空;blank参数是表单层面(HTML),blank=True之后,表示表单填写该字段时候可以不填。...choices参数就是从我们定义二元组(GENDER_CHOICES)中获取值。二元组第一个值会储存在数据库中,而第二个值将只会用于在表单中显示。...外键:通过使用models.ForeignKey来设置外键,ForeignKey第一个参数是要关联模型类名,第二个参数是on_delete。

1.9K20

Django ORM 知识概要

一对一 models.OneToOneField(Model) 多对一 models.ForeignKey(Model) 多对多 models.ManyToManyField(Model) 字段类型参数...db_index=True 给表单建立索引 help_text='' 表单中显示帮助信息 editable=False 表单不可编辑 个别字段才有的参数 给CharField 指定最大长度 max_length...只有当字段设置了default参数时才能使用 SQL等价物:SET DEFAULT。 SET(value 或者 函数返回值):设置给定值。这个不是SQL标准一部分,完全由Django处理。...自关联 写法一: modles.ForeignKey('self',verbose_name='自关联') 写法二: modles.ForeignKey('Model',verbose_name=...Django 数据表操作 更改数据表 删除数据库表步骤 删除对应模型类代码 删除migrationd文件夹下面的模型类 删除Djangomigrations表中对应记录 删除数据库表 导入数据

1.8K20

Django -- 如何优雅提交表单

{%csrf_token%} 是Django 用来防止跨站点请求伪造。Django 内部POST表单都要如此。 视图 我们还要创建一个视图来实现这个新增cat 功能。...就比如,字段是否必填,字段长度是否超出最大范围,为避免这样错误,我们必须对字段进行校验,那么我们就在views.py 文件中加上 校验业务逻辑代码,如下所示: def add(request):...Django 为此提出了一种较为简便方法Form ,Django表单有一下两个作用: 渲染表单模板 验证数据是否合法 下面我们来介绍下他使用。...,且是必填,最大长度为10, label='name_form' 作用是渲染html 表单字段为 name label 为 name_form。...form.is_valid() 表示对POST请求中数据按照当时定义表单字段时定义规则校验。

3.2K20
领券