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

在django内联表单集中初始设置不同的外键值

在Django内联表单集中初始设置不同的外键值,可以通过以下步骤实现:

  1. 首先,确保你已经在Django项目中安装了Django框架,并且已经创建了相关的模型和表。
  2. 在你的视图函数或类视图中,创建一个内联表单集对象。内联表单集是一种特殊的表单集,用于处理与主表相关联的外键关系。
  3. 在创建内联表单集对象时,可以通过重写get_formset方法来设置不同的外键值。该方法会在每次请求时被调用,并返回一个表单集对象。
  4. get_formset方法中,可以通过修改表单集的form属性来设置不同的外键值。可以通过formset.form.base_fields来访问表单集中的字段,并通过修改字段的初始值来设置不同的外键值。

以下是一个示例代码:

代码语言:txt
复制
from django.forms import inlineformset_factory
from django.shortcuts import render
from .models import ParentModel, ChildModel

def my_view(request):
    parent_model_instance = ParentModel.objects.get(id=1)
    ChildFormSet = inlineformset_factory(ParentModel, ChildModel, fields=('field1', 'field2'))

    if request.method == 'POST':
        formset = ChildFormSet(request.POST, instance=parent_model_instance)
        if formset.is_valid():
            formset.save()
            # 处理保存成功后的逻辑
    else:
        formset = ChildFormSet(instance=parent_model_instance)
        for form in formset:
            form.fields['field1'].initial = 'initial_value'  # 设置不同的外键值

    return render(request, 'my_template.html', {'formset': formset})

在上述示例代码中,ParentModel是主表模型,ChildModel是与主表相关联的外键模型。ChildFormSet是内联表单集对象,通过inlineformset_factory函数创建。

在GET请求时,通过遍历表单集中的每个表单,可以通过修改form.fields['field1'].initial来设置不同的外键值。

注意:上述示例代码仅为演示目的,实际应用中可能需要根据具体情况进行适当的修改和调整。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云数据库(TencentDB)。

  • 腾讯云云服务器(CVM):提供弹性、安全、稳定的云服务器实例,可满足不同规模和需求的应用场景。了解更多信息,请访问腾讯云云服务器产品介绍
  • 腾讯云数据库(TencentDB):提供高性能、可扩展的数据库服务,支持多种数据库引擎和存储引擎,适用于各种应用场景。了解更多信息,请访问腾讯云数据库产品介绍

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求和情况进行决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

自定义 Django 管理界面中多对多内联模型

问题背景 Django 管理界面中,用户可以使用内联模型来管理一对多关系。但是,当一对多关系是多对多时,Django 提供默认内联模型可能并不适合。...例如,如果存在一个产品模型和一个发票模型,并且产品和发票之间是多对多关系,那么发票管理界面中,Django 会显示一个表格,其中包含所有产品及其对应复选框。...这个方法负责返回一个表单集,表单集中每个表单对应于内联模型中一个对象。 get_formset() 方法中,使用 formset_factory() 函数创建表单集。... formset_factory() 函数中,指定 model 参数为内联模型模型类,并指定 fields 参数为内联模型中需要显示字段。...这两个方法分别负责判断用户是否有添加和修改内联模型对象将新内联模型类添加到 ModelAdmin 类中。 ModelAdmin 类 inlines 属性中,添加新内联模型类。

8710

37.Django1.11.6文档

in_bulk() in_bulk(id_list=None) 获取主键值列表,并返回将每个主键值映射到具有给定ID对象实例字典。 如果未提供列表,则会返回查询集中所有对象。...(6)提供初始值 作为一个有参数表单, 实例化一个表单时可以通过指定initial字段来指定表单中数据初始值. 这种方式指定初始值将会同时替换掉表单字段和值. ...引用User模型 如果直接引用User(例如,通过键引用),AUTH_USER_MODEL设置已更改为不同用户模型项目中,代码将不能工作。...InlineModelAdmin.extra 这控制除初始形式表单集将显示额外表单数量。 有关详细信息,请参阅formsets documentation。...覆盖此方法以编程方式确定最小内联表单数。 例如,这可以基于模型实例(作为关键字参数obj传递)。 使用具有两个或多个模型与同一个父模型 有时可能有多个键到同一个模型。

24.3K80

01.前端之HTML

body内常用标签(HTML中重点) 基本标签(块级标签和内联标签) 不加标签纯文字也是可以body中写加粗斜体下划线删除段落标签<...div标签用来定义一个块级元素,并无实际意义。主要通过CSS样式为其赋予不同表现。     span标签用来定义内联(行内)元素,并无实际意义。主要通过CSS样式为其赋予不同表现。     ...表单一般用来收集用户输入信息     表单工作原理:     访问者浏览有表单网页时,可填写必需信息,然后按某个按钮提交。这些信息通过Internet传送到服务器上。     ...,别纠结,到了django我们细说。...注意:       form表单提交数据时候,必须有个submit按钮   下面这个django示例,等我学django时候再说吧: from django.conf.urls import url

1.1K20

HTML

DOCTYPEhtml> HTML也有多个不同版本,只有完全明白页面中使用确切HTML版本,浏览器才能正确显示HTML页面,这就是用处....>:为文字加上一条中线(内联标签) :文字变成斜体(内联标签) :上角标(内联标签) :下角标(内联标签) :元素包含内容,显示格式上没有任何变化,没有应为插入...):(表单用于向服务器传输数据) 用来创建一个表单,标签对之间表单控件都属于表单内容,表单可以说是一个容器. 1丶标签属性 ?  ...method属性:  用于向 action URL 发送数据 HTTP 方法 method: 表单提交方式 post/get 默认取值 就是 get(信封) get: 1.提交键值对.放在地址栏中...url后面. 2.安全性相对较差. 3.对提交内容长度有限制. post:1.提交键值对 不在地址栏. 2.安全性相对较高. 3.对提交内容长度理论上无限制 enctype属性 : 对表单内容进行编码

1.9K20

HTML

两个html中没有实质性作用,只是配合css使用。div是块级,而span是内联 ? ?... block(块)元素特点: ①总是新行上开始 ②高度,行高以及外边框和内边距都可控制 ③宽度缺省是它容器100%,除非设定一个宽度 ④它可以容纳内联元素和其他块元素 lnline...元素特点: ①和其他元素都在一行上 ②高,行高以及外边距和内边距不可改变 ③宽度就是它文字或图片宽度,不可改变 ④内联元素只能容纳文本或者其他内联元素 对行内元素注意如下: 设置宽度width无效...表单属性:HTML表单用于接收不同类型用户输入,用户提交表单时向服务器传输数据,从而实现用户与web服务器交互。表单标签,要提交所有内容都应该在该标签中。   ...method:表单提交方式post、get默认取值就是get(信封)     get:1、提交键值对,放在地址栏中url后面。2、安全性相对较差。3、对提交内容长度有限制。

1.4K91

Django查询优化及ajax编码格式原理解析

与prefetch_related select_related括号内只能放键字段,并且键字段类型只能是一对一或一对多,内部是联表操作,会将键关联表与当前表直接拼接起来,然后再执行查询操作,返回结果也是一个...对象,列表套数据对象,该数据对象获取当前表中数据或者关联表中数据,都不会再走数据库; 第一个方法耗时主要耗联表操作,第二个方法耗时主要耗查询次数; choices字段 用在一些字段数据是可以明确列出所有的可能...request.POST中; formdata form表单发送文件必须要指定编码格式 该编码格式既可以发文件也可以发普通键值django后端自动识别,将内部符合urlencoded编码格式数据...‘username’:’zhang’,’password’:’123′}) 注意:django后端针对json格式数据,不会做任何处理,原封不动放request.body内 ajax发送文件(不单单可以发送文件...能够识别; processData:false, # 浏览器不需要对数据进行任何处理 django能够识别对象中普通键值对和文件对象,然后分别放到不同方法POST和FILES中; 以上就是本文全部内容

1.6K10

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

django表单支持力度非常大,我们用不着浏览器端html文件里写大量代码,再到web端去匹配form里id/name/value、验证规则,再与持久层数据库比较并做操作。...所以,基本表单功能看BaseForm已经足够了。 2、从模型创建表单 django对于MVC中C与M间映射是非常体贴集中体现中Model模型中(比如模型权限与用户认证)。..._save_m2m           return self.instance   所以,对于ModelForm我们可以传入instance参数初始表单,可以调用save()方法直接将从html里得到表单数据持久化到数据库中...ContextMixincontext上下文中加入’view’元素,值为self实例。 ProcessFormViewGET请求上渲染表单POST请求上解析form到表单实例。...django模型中就体现为ForeignKey、ManyToManyField或者OneToOneField。而在业务逻辑上,需要体现为一张表单,对应着数据库里多张表。

3.3K20

Django 3.1 官网学习路线

创建项目 如果这是您第一次使用 Django,那么您必须进行一些初始设置。...字段还可以有各种可选参数;本例中,我们将投票默认值设置为 0。 最后,请注意使用键定义了关系。这告诉 Django 每个选择都与一个问题相关。...通常,您需要定制管理表单外观和工作方式。可以通过注册对象时告诉 Django 所需选项来实现。 通过重新排列编辑表单字段来了解其工作原理。...“添加选择”表单如下所示: 表单中,“Question”字段是一个选择框,包含数据库中每个问题。Django 知道一个键应该在管理中表示为一个框。我们例子中,目前只存在一个问题。...因此,Django 提供了一种表格方式来显示内联相关对象。

8.1K10

前端之HTML内容

Meta标签组成:meta标签共有两个属性,它们分别是http-equiv属性和name属性,不同属性又有不同参数值,这些不同参数值就实现了不同网页功能。...主要通过CSS样式为其赋予不同表现。 span标签用来定义内联(行内)元素,并无实际意义。主要通过CSS样式为其赋予不同表现。...注意:关于标签嵌套:通常块级元素可以包含内联元素或某些块级元素,但内联元素不能包含块级元素,它只能包含其它内联元素。 其中有一个特殊:p标签不能包含块级标签。...表单一般用来收集用户输入信息 表单工作原理: 访问者浏览有表单网页时,可填写必须信息,然后按某个按钮提交。这些信息通过Internet传送到服务器上。...”时,为输入框初始值        type=“checkbox”,“radio”,“file”,为输入相关联值 checked:radio和checkbox默认被选中项 readonly:text

2.4K90

django 1.8 官方文档翻译: 5-1-1 使用表单

考虑一下Django Admin 站点,不同类型大量数据项需要在一个表单中准备好、渲染成HTML、使用一个方便界面编辑、返回给服务器、验证并清除,然后保存或者向后继续处理。...Django 会处理表单工作中三个显著不同部分: 准备并重新构造数据 为数据创建HTML 表单 接收并处理客户端提交表单和数据 可以手工编写代码来实现,但是Django 可以帮你完成所有这些工作。...如果你想禁用这个行为,请设置form 标签novalidate 属性,或者指定一个不同字段,如TextInput。...如果渲染一个不合法绑定表单,它将包含内联错误信息,告诉用户如何纠正数据。 表单is_bound 属性将告诉你一个表单是否具有绑定数据。...更深入主题 这里只是基础,表单还可以完成更多工作: 表单表单集中使用初始化数据 限制表单最大数目 表单验证 验证表单集中表单数目 处理表单排序和删除 添加额外字段到表单视图和模板中视图表单

4.2K20

17.HTML

"> Body标签 1.块级标签和内联标签 block(块)元素特点 ① 总是新行上开始; ② 高度,行高以及外边距和内边距都可控制; ③ 宽度缺省是它容器100%,除非设定一个宽度。...表单标签 (1)表单属性 HTML 表单用于接收不同类型用户输入,用户提交表单时向服务器传输数据,从而实现用户与Web服务器交互。...post提交键值对不在地址栏. 2.安全性相对较高. 3.对提交内容长度理论上无限制. (2)表单元素input text 文本框输入(默认text文本框类型)。   ...(以下属性text和password共有)   size(指定表单元素初始宽度。...默认表现形式是可以输入很多行文本文本框。   name (表单提交项key)   cols(设置文本域宽度)   rows(设置文本域高度,即行数) 下拉框标签。

3.6K71

django 1.8 官方文档翻译:5-1-4 内建Widget

然而,如果你想要使用一个不同Widget,你可以定义字段时使用widget 参数。...设置Widget 参数 很多Widget 都有可选参数;它们可以定义字段Widget 时设置。...概况来讲,你需要子类化Widget 并定义一个“Media” 内联类 或 创建一个“media” 属性。 这些方法涉及到Python 高级编程,详细细节表单Assets 主题中讲述。...其它可能需要覆盖方法: render(name, value, attrs=None) 这个方法中 value参数处理方式与Widget子类不同,因为需要弄清楚如何为了不同widget中展示分割单一值...这个钩子允许你以任何你想要方式,格式化widgetHTML设计。 下面示例中Widget 继承MultiWidget 以不同选择框中显示年、月、日。

5K40

Django 2.1.7 视图 - HttpReqeust对象、QueryDict对象

视图第一个参数必须是HttpRequest对象,django.http模块中定义了HttpRequest对象API。 属性 下面除非特别说明,属性都是只读。...浏览器中给出地址发出请求采用get方式,如超链接。 浏览器中点击表单提交按钮发起请求,如果表单method设置为post则为post请求。...session:一个既可读又可写类似于字典对象,表示当前会话,只有当Django 启用会话支持时才可用。 运行服务器,浏览器中浏览首页,可以浏览器“开发者工具”中看到请求信息如下图: ?...QueryDict对象 定义django.http.QueryDict HttpRequest对象属性GET、POST都是QueryDict类型对象 与python字典不同,QueryDict类型对象用来处理同一个键带有多个值情况...问:表单form如何提交参数呢? 答:表单控件name属性值作为键,value属性值为值,构成键值对提交。 如果表单控件没有name属性则不提交。

1.5K20

Django数据库查询优化与AJAX

这样做好处:跨表查询也不需要重复走数据库,减轻数据库压力。select_related()括号内放多个键字段,逗号隔开,会将多个键字段关联表与当前表拼成一张大表。...(这一特点给用户感受是不知不觉中完成请求和响应过程) AJAX 不需要任何浏览器插件,但需要用户允许JavaScript浏览器上执行。...} }) 前后端传输数据编码格式 前后端进行数据交互时候,针对不同数据后端会进行不同处理,Djangorequest.POST、request.GET...enctype时,它默认编码格式是urlencoded,当我们发送文件时需要将enctype设置成 multipart/form-data,这样form表单发送文件时候就采用formdata格式进行编码...后端可以自动识别MyFormData(我们自己生成内置对象)中普通键值和文件,普通键值放在request.POST里面,文件放在request.FILES里面。

2.3K20

python_day12_html

内联标签㠌套    只能㠌套内联标签 内联标签 块级标签: block(块)元素特点  总是新行上开始...它可以容纳内联元素和其他块元素 内联标签: inline 元素特点  和其他元素都在一行上;  宽度就是它文字或图片宽度...一、表单属性   HTML 表单用于接收不同类型用户输入,用户提交表单时向服务器传输数据,从而实现用户与Web服务器交互。表单标签, 要提交所有内容都应该在该标签中.    ...为默认选项             get: 1.提交键值对.放在地址栏中url后面. 2.安全性相对较差. 3.对提交内容长度有限制.            ...post:1.提交键值对 不在地址栏. 2.安全性相对较高. 3.对提交内容长度理论上无限制.             get/post是常见两种请求方式.

85020

Django学习之八:forms组件【对

总结 Django forms组件     Handle (掌控)一个form是非常复杂工程,需要做很多功能:不同类型数据要有不同渲染;校验数据;获取检验后干净数据,并将数据反序列化为相应数据类型如时间对象...field.value() 就可以拿到表单具体value所对应值或非绑定设置初始化值。...而且没通过错误信息还用于渲染到表单页面中,提醒提交表单用户错误。 除了form.errors存放全部校验错误信息。...modelform对象层面和ModelChoiceField层面,进行数据绑定和数据clean()校验是不同。...用于校验 label 表单贴条。主要用于贴示 数据是什么信息。默认是字段名。 widget 主要是表单渲染,和部分校验。 initial 初始化数据。用于初始化默认值。

2.1K30

Django源码学习-13-HttpResponse

Django网络应用开发5项基础核心技术包括模型(Model)设计,URL 设计与配置,View(视图)编写,Template(模板)设计和Form(表单)使用。...Django服务器接收到客户端发送过来请求后,会将提交上来这些数据封装成一个HttpRequest对象传给视图函数。那么视图函数处理完相关逻辑后,也需要返回一个响应给浏览器。...content-type:指定返回数据MIME类型,默认为'text/html'。 ? ? ② 方法 init init:创建HttpResponse对象后完成返回内容初始化。...set_cookie set_cookie:设置Cookie信息。...set_cookie(key, value='', max_age=None, expires=None) cookie是网站以键值对格式存储浏览器中一段纯文本信息,用于实现用户跟踪。

61140

django 1.8 官方文档翻译: 2-5-6 多数据库

定义你数据库 Django中使用多个数据库第一步是告诉Django 你将要使用数据库服务器。这通过使用DATABASES 设置完成。...该设置映射数据库别名到一个数据库连接设置字典,这是整个Django 中引用一个数据库方式。字典中设置 DATABASES 文档中有完整描述。 你可以为数据库选择任何别名。...如果该主键值second 数据库中没有使用,那么你不会遇到问题 —— 该对象将被复制到新数据库中。...第一个站点上,Author 和 Publisher 对象被暴露出来;Publisher 对象具有一个表格内联,显示该出版社出版书籍。第二个站点只暴露Publishers,而没有内联。...如果你使用一个路由来路由分离到不同数据库上,这些模型定义任何键和多对多关联必须在单个数据库内部。 这是因为引用完整性原因。

1.5K20
领券