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

从Django内联表单集中排除已删除的对象

在Django中,内联表单集(Inline Formset)是一种方便的方式来处理与主模型相关联的多个子模型的表单。当使用内联表单集时,有时候需要从表单集中排除已经被删除的对象。下面是一个完善且全面的答案:

在Django中,可以通过使用can_delete参数来控制内联表单集中是否显示删除选项。默认情况下,can_delete参数为True,即显示删除选项。如果想要从内联表单集中排除已删除的对象,可以将can_delete参数设置为False。

举个例子,假设有一个Parent模型和一个Child模型,它们之间是一对多的关系。我们想要在Parent的表单中嵌入Child的表单集,并且排除已删除的Child对象。可以按照以下步骤进行操作:

  1. 在定义Child模型时,为Parent外键字段添加on_delete=models.CASCADE参数,以确保在删除Parent对象时,相关联的Child对象也会被删除。
代码语言:python
复制
from django.db import models

class Parent(models.Model):
    # 父模型字段

class Child(models.Model):
    parent = models.ForeignKey(Parent, on_delete=models.CASCADE)
    # 子模型字段
  1. 在定义Child的内联表单集时,将can_delete参数设置为False,以排除已删除的Child对象。
代码语言:python
复制
from django.forms import inlineformset_factory

ChildFormSet = inlineformset_factory(Parent, Child, can_delete=False)

通过以上步骤,我们可以在Parent的表单中嵌入Child的表单集,并且已删除的Child对象将被排除在表单集之外。

关于Django内联表单集的更多信息,你可以参考腾讯云的Django文档:Django内联表单集

请注意,本答案没有提及亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等流行的云计算品牌商,以符合要求。

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

相关·内容

Django管理应用程序高级配置在BookInstance模型运用【Django

Django管理应用程序 Django管理应用程序可以使用模型自动构建可用于创建、查看、更新和删除记录站点区域。这可以在开发过程中节省大量时间,使测试模型和查看是否有正确数据变得容易。...python3 manage.py runserver 高级配置 Django使用注册模型信息创建基本管理站点: 每个模型都有一个单独记录列表,由__ str__()方法创建并链接到详细视图/表单以进行编辑字符串...默认情况下,视图顶部有一个操作菜单,可用于批量删除记录。 用于编辑和添加记录模型详细记录表单包含模型所有字段,这些字段按其声明顺序垂直排列。 可以进一步自定义界面,使其更易于使用。...向列表视图中操作菜单添加其他选项,并选择此菜单在表单显示位置。 详细信息视图 选择要显示(或排除字段、它们顺序、分组、可编辑、要使用小部件、方向等。...向记录中添加相关字段以允许内联编辑(例如,在创建作者记录时添加添加和编辑书本记录功能)。

1.7K20

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

Django 模型描述一个对象逻辑结构、行为以及展现给我们方式,与此类似,Form 类描述一个表单并决定它如何工作和展现。...实例化、处理和渲染表单Django 中渲染一个对象时,我们通常: 在视图中获得它(例如,数据库中获取) 将它传递给模板上下文 使用模板变量将它扩展为HTML 标记 在模板中渲染表单和渲染其它类型对象几乎一样...我们可能想使用非常复杂字段,以允许用户做类似日历中挑选日期这样事情,等等。 这个时候,让Django 来为我们完成大部分工作是很容易。...如果渲染一个不合法绑定表单,它将包含内联错误信息,告诉用户如何纠正数据。 表单is_bound 属性将告诉你一个表单是否具有绑定数据。...更深入主题 这里只是基础,表单还可以完成更多工作: 表单集 在表单集中使用初始化数据 限制表单最大数目 表单验证 验证表单集中表单数目 处理表单排序和删除 添加额外字段到表单中 在视图和模板中视图表单

4.2K20

Django教程第1章 | 快速入门 | 基础知识

简介 Django是Python主流 Web开发框架,功能强大,是Python Web应用开发第一选择。 使用 Django,您可以在几个小时内完成 Web 应用程序概念到启动过程。...django特点 ORM(对象关系映射): Django 提供了一个强大 ORM,允许开发者通过 Python 代码来定义和操作数据库模型,而无需直接使用 SQL。...自动化 admin 界面: Django 自动生成管理后台,使得管理和操作数据库过程变得非常简单。开发者可以轻松地创建、修改和删除数据库记录,而无需编写自定义管理界面。...表单处理: Django 提供了强大表单处理工具,使得用户输入验证和处理变得更加简单。这对于开发 Web 表单和处理用户提交数据非常有用。...(Model):编写程序应有的功能,负责业务对象与数据库映射(ORM)。

15710

Django ORM 知识概要

related_name='name' 反向查询时候可能会用到 on_delete=value value值 CASCADE:删除引用对象时,也删除引用它对象 PROTECT:禁止删除引用对象...指定模型属于哪个应用(如果在settings里面已经注册过应用的话,就不用写这个字段了) db_tablespace 定义数据库表空间名字 Django 数据表操作 更改数据表 删除数据库表步骤...删除对应模型类代码 删除migrationd文件夹下面的模型类 删除Djangomigrations表中对应记录 删除数据库表 导入数据 Django shell 导入数据 引入模型 调用模型对象...(),bulk_create(),create_or_update() 创建,批量创建,创建或更新 更新对象 update(),update_or_create() 更新,更新或创建 删除对象 delete...F对象和Q对象 F对象:操作字段数据 Q对象:结合 AND , OR ,NOT, | , ~ , & 实现复杂查询 注: 本文知识点是根据自己项目经验及慕课网教学视频整理所得, 如需转载请注明出处

1.8K20

django 1.8 官方文档翻译: 1-2-4 编写你第一个Django应用,第4部分

这意味着,当有人选择了一个单选按钮并提交了表单,将会发送 POST 数据是 choice=3。这是 HTML 表单基本概念。...当你创建一个表单为了修改服务器端数据时,请使用 method=”post” 。这不是 Django 特定技巧;这是优秀 Web 开发实践。...让我们把 poll 应用修改成使用通用视图系统应用,这样我们就能删除删除一些我们自己代码了。 我们将采取以下步骤来进行修改: 修改 URLconf 。 删除一些旧,不必要视图。...但是本教程直到现在都故意集中介绍“硬编码”视图,是为了专注于核心概念上。 就像你在使用计算器前需要知道基本数学知识一样。...现在你可以在 polls/views.py 中删除 index() , detail() 和 results() 视图了。 我们不需要它们了 – 它们替换为通用视图了。

1.4K10

Django内置通用类视图及实例

,各种有用对象被存储在self上,同request(self.request)一样,其中包含了URLconf中获取到位置参数(self.args)和关键字参数(self.kwargs)....None):返回该视图要显示单个对象.如果提供了queryset,该queryset将作为对象查询源,否则,将使用get_queryset().get_object()视图所有参数中查找pk_url_kwarg...,并重定向到get_success_url(),可以覆盖该方法在以上行为之间添加额外动作.该方法必须返回一个HttpResponse. form_invalid(form):如果表单验证失败,则使用填充表单数据和错误信息重新渲染上下文...显示用于编辑现有对象表单视图,重新显示具有验证错误信息视图,并且保存对象.这里使用对象模型自动生成表单(除非手动制定表单类)....显示确认页面并删除现有对象视图.仅当请求方法为POST时,才会删除给定内容.如果此视图是通过GET提取,它将显示一个确认页面,其中包含POST到同一网址表单.

2.9K40

Django】当大型项目采用Django框架对于QueryDict以及模板表单在Admin 管理工具使用

QueryDict 在HttpRequest对象中,GET和POST属性是django.http实例。QueryDict类。 QueryDict是一个用户定义类,类似于字典。...csrf全称是跨站点请求伪造。这是Django提供防止伪装提交请求功能。POST方法提交表单必须具有此标签。...通过解析请求,服务器可以客户端获取数据,并根据URL提供特定服务。...每个视图函数负责返回一个HttpResponse对象,该对象包含生成响应。 视图层中有两个重要对象:请求对象和响应对象。 Admin 管理工具 我们可以自定义管理页面以替换默认页面。...我们可以使用内联显示将标记附加到联系人编辑页面。

1.6K20

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

None):返回该视图要显示单个对象.如果提供了queryset,该queryset将作为对象查询源,否则,将使用get_queryset().get_object()视图所有参数中查找pk_url_kwarg...,并重定向到get_success_url(),可以覆盖该方法在以上行为之间添加额外动作.该方法必须返回一个HttpResponse. form_invalid(form):如果表单验证失败,则使用填充表单数据和错误信息重新渲染上下文...显示用于创建对象表单视图,通过验证错误信息重新显示视图,并且保存对象....显示用于编辑现有对象表单视图,重新显示具有验证错误信息视图,并且保存对象.这里使用对象模型自动生成表单(除非手动制定表单类)....显示确认页面并删除现有对象视图.仅当请求方法为POST时,才会删除给定内容.如果此视图是通过GET提取,它将显示一个确认页面,其中包含POST到同一网址表单.

3.2K10

Django 3.1 官网学习路线

path() argument: view 当 Django 找到匹配模式时,它调用指定视图函数,第一个参数是 HttpRequest 对象路由中“捕获”任何值都是关键字参数。...页面的底部提供了几个选项: 保存-保存更改并返回此类型对象更改列表页。 保存并继续编辑——保存更改并重新加载此对象管理页面。 保存并添加另一个——保存更改并为这种类型对象加载一个新空白表单。...通常,您需要定制管理表单外观和工作方式。可以通过在注册对象时告诉 Django 所需选项来实现。 通过重新排列编辑表单字段来了解其工作原理。...因此,Django 提供了一种表格方式来显示内联相关对象。...使用表格内联(而不是 StackedInline),相关对象将以更紧凑、基于表格格式显示: 自定义管理员更改列表 现在问题管理页面看起来不错了,让我们对“更改列表”页面做一些调整——这个页面显示系统中所有问题

8.1K10

django 1.8 官方文档翻译: 2-3-1 模型实例参考

可选exclude 参数用来提供一个可以验证和清除中排除字段名称列表。ModelForm 使用这个参数来排除表单中没有出现字段,使它们不需要验证,因为用户无法修正这些字段错误。...可选exclude 参数让你提供一个字段名称列表来验证中排除。如果有字段验证失败,它将引发一个ValidationError。...可选exclude 参数允许你提供一个字段名称列表来验证中排除。如果有字段验证失败,将引发一个 ValidationError。...如果你手工赋值一个自增主键值,请确保不要使用一个已经存在主键值!如果你使用数据库中已经存在主键值创建一个新对象Django 将假设你正在修改这个存在记录而不是创建一个新记录。...它只在数据库中删除这个对象;其Python 实例仍将存在并持有各个字段数据。 更多细节,包括如何批量删除对象,请参见删除对象。 如果你想自定义删除行为,你可以覆盖delete() 方法。

1.9K10

Django model 层之Models与Mysql数据库小结

校验上载对象是否是合法图片。 更多详情参考官方文档。 IntegerField 整数。值-2147483648 到2147483647,支持所有数据库。...如果设置了该选项值,那么默认表单组件将变为一个select box,而不是标准是text field,且将被限制给定choice中选择choice。...如果是可调用对象,每次创建对象,都会被调用 help_text 同表单组件一起展示帮助说明 primary_key 如果设置primary_key=True,那么该field将是model主键 主键...如果修改某个存在对象,主键列值,并保存该对象,会在旧对象基础上,重新构建一个对象。...SET() 删除被参照表某条表记录,设置参照表中,同待删除记录存在外键关联关系记录外键列值为传递给SET()参数值,如果传递给SET()参数值是可调用对象,则设置为调用可调用对象获取结果。

2.2K20

django 1.8 官方文档翻译: 1-2-2 编写你第一个Django应用,第2部分

哲理 为你员工或客户生成添加、修改和删除内容管理性网站是个单调乏味工作。 出于这个原因,Django 根据模型完全自动化创建管理界面。...Save and add another – 保存更改并载入当前对象类型空白表单。 Delete – 显示删除确认页。...这样的话你就需要在注册对象 时告诉 Django 对应配置。 让我们来看看如何在编辑表单上给字段重新排序。...如果你在窗口中添加了一 poll 并点击了 “Save” 按钮, Django 会将 poll 保存至数据库中并且动态添加为你正在查看 “Add choice” 表单 选择项。...这个变量包含了每一个 安装 Django 应用。你可以通过你认为最好方法硬编码链接到特定对象管理页面,而不是使用默认模板。

2.5K40

Django3.0新鲜出炉!全面解读新特性,ASGI真香实锤,不来了解一下?

Python兼容性 Django虽然之前没有支持异步开发,但是在Python版本支持方面,它一向是比谁都积极,Django 2.0版本刚推出开始,官方就已经宣布停止对Python 2.X版本支持了,...更多对比可以参考mariadb-vs-mysql。 PostgreSQL排斥约束 新ExclusionConstraint类允许在PostgreSQL上添加排除约束。...新ModelAdmin.get_inlines()方法允许根据请求或模型实例指定内联。 Select2库4.0.3版本升级到4.0.7。 jQuery3.3.1版本升级到3.4.1。...表格 表单集可以通过can_order设置ordering_widget属性或覆盖来控制在订购表单时使用小部件。...Django+ASGI+Uvicorn实战 ASGI既然是基于WSGI扩展开发,那么使用方法和WSGI类似,我们同样需要一个application对象,然后使用应用服务器把这个对象启动起来,就像使用

2.6K10

Django之model模型对象验证

模型对象验证 验证一个模型涉及三个步骤: 验证模型字段 —— Model.clean_fields() 验证模型完整性 —— Model.clean() 验证模型唯一性 —— Model.validate_unique...当使用ModelForm时,is_valid() 将为表单所有字段执行这些验证。...可选exclude 参数用来提供一个可以验证和清除中排除字段名称列表。ModelForm 使用这个参数来排除表单中没有出现字段,使它们不需要验证,因为用户无法修正这些字段错误。...可选exclude 参数让你提供一个字段名称列表来验证中排除。如果有字段验证失败,它将引发一个ValidationError。...可选exclude 参数允许你提供一个字段名称列表来验证中排除。如果有字段验证失败,将引发一个 ValidationError。

1.4K30

Django项目知识点(四)

校验参数 # 3.1 创建表单对象 # UserModelForm在form.py自定义 form = UserModelForm(put_data,...json键值对,而不是列表 request.body就是form表单数据 Queryset Django ORM用到三个类:Manager、QuerySet、Model。...QuerySet实例 就是数据库根据自己要求拿数据 连数据都那不出来,写啥视图 所以在编写queryset必须用django shell 调试 在model中,Django通过给Model增加一个objects...exclude() 排除满足条件对象 annotate() 使用聚合函数 order_by() 对查询集进行排序 reverse() 反向排序 distinct() 对查询集去重...这样就可以引用模型字段值并使用它们执行数据库操作,而无需实际将它们数据库中拉出到Python内存中 说白了就是我数据库拿东西,但是有些需要字段没有,要通过绑定外键appmodel拿。

1.5K30
领券