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

Django之ORM字段和参数

(to_field='字段名') ---- related_name   反向操作使用的字段名,用于代替原反向查询的'表名_set'。...(反向查询),我们就可以这么写: models.Classes.objects.first().students.all() ---- related_query_name    反向查询操作使用的连接前缀...) models.SET 删除关联数据,  与之关联的值设置为指定值,设置:models.SET(值) 与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象) ---- db_constraint...---- related_query_name 同ForeignKey字段。 ---- symmetrical               仅用于多对多自关联,指定内部是否创建反向操作的字段。...---- through      在使用ManyToManyField字段,Django将自动生成一张表来管理多对多的关联关系。

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

Django ModelForm操作及验证方式

不做任何操作,内部定义 save_m2m(用于保存多对多) obj = form.save(commit=False) obj.save() # 保存单表信息 obj.save_m2m() # 保存关联多对多信息...} # localized_fields=('ctime',) # 哪些字段做本地化 4、ModelForm 数据库操作 4.1、创建数据save 如果数据验证是ok的,那么save,就直接在数据库中创建完数据了..._save_m2m return self.instance# model 类的对象 """""" 所以instance = obj.save(False),什么都不会操作。...if obj.is_valid(): instance = obj.save(False) instance.save() # 当前对象表数据创建 obj.save_m2m() # 多对多表数据创建 #...钩子、额外字段 数据验证钩子 从上面的Form和ModelForm中,他们都是继承了BaseForm,而is_valid是在BaseForm中定义的,所以ModelForm也能和Form一样使用各种钩子

1.2K10

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

有两个额外的可选参数: auto_now ,每次保存对象自动设为当前日期 auto_now_add ,创建对象自动设为当前日期。...与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象) related_name=None # 反向操作使用的字段名,用于代替表名_set related_query_name...=None,# 反向操作使用的连接前缀,用于替换【表名】 limit_choices_to=None, # 在Admin或ModelForm中显示关联数据,提供的条件,字典类型...None # 在Admin或ModelForm中显示关联数据,提供的条件,字典类型 symmetrical=None # 仅用于多对多自关联,用于指定内部是否创建反向操作的字段...# 默认创建第三张表,数据库中表的名称 3.一对一 一对一其实就是 一对多 + 唯一索引,当两个类之间有继承关系,默认会创建一个一对一字段,一对一使用OneToOneField来实现,如下: from

2.1K00

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

多对多:在某表中创建一行数据是,有一个可以多选的下拉框 例如:创建用户信息,需要为用户指定多个爱好 一对一:在某表中创建一行数据,有一个单选的下拉框(下拉框中的内容被用过一次就消失了 例如:原有含10...与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象) def func(): return 10 class MyModel(models.Model): user = models.ForeignKey...(表名__字段名=1).values('表名__字段名') limit_choices_to=None, # 在Admin或ModelForm中显示关联数据,提供的条件: # 如: - limit_choices_to..., # 在Admin或ModelForm中显示关联数据,提供的条件: # 如: - limit_choices_to={'nid__gt': 5} - limit_choices_to=lambda...ForeignKey外键(跨表操作): 跨表操作1 v = models.Host.objects.filter(nid__gt=0) v[0].b.caption #通过.进行跨表操作,在对象中去做跨表操作用

2.2K10

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

这么多种选择放在一起,如何分出高下?我想此时的场景下就两个标准: 1、相同的功能用最少的代码实现(代码少BUG也会少); 2、相对最易于理解,从而易于维护和扩展。...那么,一个模型代表着RDS中的一张表,模型的实例代表着关系数据库中的一行,而form如何与一行相对应呢?...通用视图使用时,只需要承继后,再设置model或者form_class即可。...所以,从模型创建出的表单ModelForm,配合上通用视图后,威力巨大!! 4、多个ModelForm在一个form里提交 终于可以回到本文的主题了。...CreateView默认是处理一个Model模型、一个ModelForm表单的,然而,很多时候为了解耦,会把一张表拆成多张表,通过id关联在一起。

3.3K20

Django中的AutoField字段使用

主要存储时间相关的数据类型,格式为YYYY-MM-DD HH:MM:[ss[.uuuuuu]][TZ] 注意:DateField与DateTimeField有两个属性,配置auto_now_add=True,创建数据记录的时候会把当前时间添加到数据库...ModelForm中提供验证IPV4和IPV6机制 二、常用关系型数据表处理Field 1、处理一对多关系数据表:使用ForeignKey 2、处理多对多关系数据表:使用ManyToManyField...2、to_field:设置要关联的表的字段 3、related_name:反向操作使用的字段名,用于代替原反向查询的”表名_set” 4、on_delete:当删除关联表中的数据,当前表与其关联的行的行为...(前提FK字段需要设置默认值) on_delete=models.SET:删除关联数据: a、与之关联的值设置为指定值,设置:models.SET(值) b、与之关联的值设置为可执行对象的返回值,设置:...models.SET(可执行对象) 5、db_constraint:是否在数据库中创建外键约束,默认为True,db_constraint一般使用在建立数据表连接关系当中(例如创建外键),如果使用False

6.4K20

Django中ORM操作

前言 Django框架功能齐全自带数据库操作功能,本文主要介绍Django的ORM框架 到目前为止,当我们的程序涉及到数据库相关操作,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb...使用前必须先创建数据库 create database djangoblog default character set utf8 collate utf8_general_ci; 2、修改project...、反向连表操作的认定无非是Foreign_Key字段在哪张表决定的, Foreign_Key字段在哪张表就可以哪张表使用Foreign_Key字段连表,反之没有Foreign_Key字段就使用与其关联的...小写表名; 1对多:对象.外键.关联表字段,values(外键字段__关联表字段) 多对多:外键字段.all() 反向连表操作总结: 通过value、value_list、fifter...().first() result = obj.userinfo_set.all() [userinfo对象,userinfo对象,] 小写的表名 得到有外键关系的列 #因为使用values取值取得是字典的不是对象

4.7K10

django 1.8 官方文档翻译: 3-4-3 使用基于类的视图处理表单

这些通用的视图将自动创建一个ModelForm,只要它们能知道使用哪一个模型类: 如果给出model属性,则使用该模型类。 如果get_object() 返回一个对象,则使用对象的类。...你甚至不需要为CreateView 和UpdateView提供success_url —— 如果存在它们将使用模型对象的get_absolute_url()。...如果你想使用一个自定义的ModelForm(例如添加额外的验证),只需简单地在你的视图上设置form_class。...注 当指定一个自定义的表单类,你必须指定模型,即使form_class 可能是一个ModelForm。...模型和request.user 为了跟踪使用CreateView 创建一个对象的用户,你可以使用一个自定义的ModelForm 来实现这点。

1.8K20
领券