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

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

    ,如果要显示初始值,请用initial参数           self.initial = initial or {}          #模板中显示{{form}}时,默认是以表,模型的实例代表着关系数据库中的一行,而form如何与一行相对应呢?...CreateView默认是处理一个Model模型、一个ModelForm表单的,然而,很多时候为了解耦,会把一张表拆成多张表,通过id关联在一起。...在django的模型中就体现为ForeignKey、ManyToManyField或者OneToOneField。而在业务逻辑上,需要体现为一张表单,对应着数据库里的多张表。...例如,我们希望录入合同,其中合同Model中还有地址Model和项目Model,而项目Model中又有地址Model,等等。 当然,我们有很多种实现的方案,但是,前面三部分说了那么多,不是浪费口水的。

    3.4K20

    Django之ORM字段和参数

    ---- BooleanField    布尔值类型,储存布尔值,True或者False ---- EmailField         字符串类型,Django Admin以及ModelForm中提供验证机制...---- FileField           字符串(储存文件路径),Django Admin以及ModelForm中提供读取文件夹下文件的功能 关系字段 ---- ForeignKey     ...ForeignKey可以和其他表做关联关系同时也可以和自身做关联关系。 ---- OneToOneField    一对一字段。通常一对一字段用来扩展已有字段。...ForeignKey参数 ---- to       设置要关联的表。(to='表名') ---- to_field   设置要关联的表的字段,不指定的话默认关联指定表的主键。...---- db_table                    默认创建第三张表时,数据库中表的名称。 ---- 元信息 ORM对应的类里面包含另一个Meta类,而Meta类封装了一些数据库的信息。

    2.3K60

    在 Django 表单中传递自定义表单值到视图

    在Django中,我们可以通过表单的初始化参数initial来传递自定义的初始值给表单字段。如果我们想要在视图中设置表单的初始值,可以在视图中创建表单的实例时,传递一个字典给initial参数。...1、问题背景我们遇到了这样一个问题:在使用 Django 表单时,我们希望将自定义表单中的值传递到视图中。然而,我们发现无法为多选选项的每个选项传递值。...在渲染表单时,只有一个字符字段,而多选框中有多个选择。我们想知道是否有办法解决这个问题,以及表单集是否可以在这里提供帮助。我们对 Django 还很陌生,因此希望得到一些解释,以便更好地理解和学习。...# models.pyclass StateOption(models.Model): partstate = models.ForeignKey(State) partoption = models.ForeignKey...=20)​# forms.pyclass UpdateStateOptionWithOutcomesForm(forms.ModelForm): class Meta: model

    11710

    Django 学习笔记之模型高级用法(上)

    而细节用法往往体现在一些差别用法,难以理解的知识点上。 1 复杂的字段类型 经过前面的学习,我们知道模型的字段类型一方面是指定数据库表的列名称和数据类型,另一方面决定 HTML 中的表单标签类型。...而 BigIntegerField 是一个 64 位整数,它允许的值范围是 -9223372036854775808 到 9223372036854775807。...今天讲下其中的一些字段选项。 2.1 ForeignKey 1) on_delete 在 Django 2.0 中,设置外键时需要添加一个 on_delete选项。...on_delete 有几个可选值: CASCADE:这就是默认的选项,级联删除,你无需显性指定它。...help_text:用于前端页面上显示提示信息。要确保页面不存在 XXS 漏洞,需要使用 django.utils.html.escape() 对内容进行转义。

    2K30

    Django模型最佳实践

    将QuerySet的exists()方法的返回值用于if条件。 用DecimalField来存储货币相关数据而不是FloatField。 定义__str__方法。 不要将数据文件放在同一个目录中。...说明 null 数据库中对应的字段是否允许为NULL,默认为False blank 后台模型管理验证数据时,是否允许为NULL,默认为False choices 设定字段的选项,各元组中的第一个值是设置在模型上的值...,第二值是人类可读的值 db_column 字段对应到数据库表中的列名,未指定时直接使用字段的名称 db_index 设置为True时将在该字段创建索引 db_tablespace 为有索引的字段设置使用的表空间...,默认为DEFAULT_INDEX_TABLESPACE default 字段的默认值 editable 字段在后台模型管理或ModelForm中是否显示,默认为True error_messages...unique 设置为True时,表中字段的值必须是唯一的 verbose_name 字段在后台模型管理显示的名称,未指定时使用字段的名称 ForeignKey属性 limit_choices_to:值是一个

    2.3K40

    django创建表单以及表单数据类型和属性

    gname = models.CharField(max_length=30,null=True) class Boy2Girl(models.Model): b = models.ForeignKey...girl的id 添加(add) models.Boy1.objects.filter(bname='男1').first().g.add(1,2,3,4,5,2) #会自动去重保持唯一性也不会因为相同而报错...数据类型对应属性 null 数据库中字段是否可以为空 db_column 数据库中字段的列名 default 数据库中字段的默认值...#### 联合索引 index_together = [ ('b', 'g') ] 四.djamgo只在admin中生效的数据类型 EmailField(CharField):字符串类型对应信息是不是邮箱格式进行验证...blank:Admin中是否允许用户输入为空 editable:Admin中是否可以编辑 help_text:Admin中该字段的提示信息 choices:Admin中显示选择框的内容,用不变动的数据放在内存中从而避免跨表操作

    78830

    Django基础——ORM字段和字段参数

    操作数据表 --> 创建表/删除表/修改表       操作models.py里面的类   2....ForeignKey --> 外键     ForeignKey 字段的参数;     a.to  --> 设置要关联的表;     b.to_field -->设置要关联的表的字段     ...2. default 该字段为默认值 3. unique 如果设置为unique=True 则该字段在此表中必须是唯一的 。...(to=)),是需要添加外键的 # 而书和作者是多对多的,一本书可以有多个作者,还有一个作者也可能有多本书,即多对多的时候用(ManyToManyField(to=)) #然后ROM会自动的帮你生成另外的一张表来表示多对多的关系...当 一张表的某一些字段查询的比较频繁,另外一些字段查询的不是特别频繁   把不怎么常用的字段 单独拿出来做成一张表 然后用过一对一关联起来 2.

    1.6K20

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

    ImageField ClearableFileInput 所有属性和方法都继承自 FileField ,此外验证上传的对象是不是有效的图像。增加了 height 和 width 两个属性。...(book,on_delete=models.CASCADE) ForeignKey提供了多个参数,如下: ForeignKey() to # 要进行关联的表名...=None,# 反向操作时,使用的连接前缀,用于替换【表名】 limit_choices_to=None, # 在Admin或ModelForm中显示关联数据时,提供的条件,字典类型...db_constraint=True # 是否在数据库中创建外键约束 parent_link=False # 在Admin中是否显示关联数据 2.多对多 多对多的表...None # 在Admin或ModelForm中显示关联数据时,提供的条件,字典类型 symmetrical=None # 仅用于多对多自关联时,用于指定内部是否创建反向操作的字段

    2.1K00

    Python自动化开发学习-Django

    限制请求的方法 限制请求使用的参数:必须包含某系参数,但是不关心值是多少,把参数记录在一个列表里 限制请求使用的参数和值:必须包含特定的参数,并且值也必须匹配,把键值对记录在一个字典里 不过也不是所有的权限都是可以用装饰器来实现的..._meta.verbose_name_plural 把选项的内容显示出来 在显示选项的时候,需要拿着字段的名字(字符串),判断一下是不是有选项,如果是选项,需要显示出对应的选项的内容。...否则显示的只是选项的数字。...否则,就不能显示数据库的记录的值,而是要先出这个值所关联的choices里的内容。这时通过 get_FOO_display 就可以拿到选项里的内容了。...其实不是为每个类创建ModelForm,而是在forms.py里只提供一个动态创建类的方法,然后要用的时候调用这个方法,生成一个类,然后直接实例化使用。

    1.8K30

    Django中ORM操作

    1、无需连表查询性能低,省硬盘空间(选项不固定时用外键) 2、在modle文件里不能动态增加(选项一成不变用Django的choice) 其他字段 db_index = True 表示设置索引 unique...__字段") 注意对象集合调用values(),正向查询是外键字段__XX,而反向是小写表名__YY看起来比较容易混淆; books=models.Publish.objects.filter...正向查找:ForeignKey在 UserInfo表中,如果从UserInfo表开始向其他的表进行查询,这个就是正向操作,反之如果从UserType表去查询其他的表这个就是反向操作。...A表就是主表,B表为子表,ForeignKey字段就建在子表; 如果B表的1条记录也对应A表中N条记录,两表之间就是双向1对多关系,也称为多对多关系; 在orm中设置如果 A表设置了外键字段user=...() [userinfo对象,userinfo对象,] 小写的表名 得到有外键关系的列 #因为使用values取值取得是字典的不是对象,所以需要 小写表名(外键表)__ v = UserGroup.objects.values

    4.8K10
    领券