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

如何创建一个Django表单/表单集,其中的Modelchoice字段具有来自不同查询集的值

在Django中创建一个表单或表单集,其中的ModelChoice字段具有来自不同查询集的值,可以按照以下步骤进行操作:

  1. 首先,在你的Django项目中创建一个新的forms.py文件(如果已存在则跳过此步骤)。
  2. 导入必要的模块和类:
代码语言:txt
复制
from django import forms
from .models import Model1, Model2
  1. 创建一个表单类,继承自forms.Form或forms.ModelForm,根据你的需求选择合适的父类。在表单类中定义字段和其他必要的属性和方法:
代码语言:txt
复制
class MyForm(forms.Form):
    model1_choices = Model1.objects.all()
    model2_choices = Model2.objects.all()
    
    modelchoice_field = forms.ModelChoiceField(queryset=model1_choices, label='ModelChoiceField1')
    modelchoice_field2 = forms.ModelChoiceField(queryset=model2_choices, label='ModelChoiceField2')
    
    # 其他字段和方法...
  1. 在视图函数或类中,将表单实例化并传递给模板:
代码语言:txt
复制
from django.shortcuts import render

def my_view(request):
    form = MyForm()
    return render(request, 'my_template.html', {'form': form})
  1. 在模板文件中,使用表单的字段和方法来渲染表单:
代码语言:txt
复制
<form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">提交</button>
</form>

这样就创建了一个包含ModelChoice字段的Django表单/表单集,其中的ModelChoice字段具有来自不同查询集的值。你可以根据自己的需求修改和扩展表单类、视图函数和模板文件。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,建议你参考腾讯云官方文档或搜索引擎来获取相关信息。

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

相关·内容

37.Django1.11.6文档

这意味着,当有人选择一个单选按钮并提交表单提交时,它将发送一个POST数据choice=#,其中# 为选择ChoiceID 由于我们创建一个POST表单(它具有修改数据作用),所以我们需要小心跨站点请求伪造...Django 提供F表达式 来允许这样比较。 F() 返回实例用作查询内部对模型字段引用。 这些引用可以用于查询filter 中来比较相同模型实例上不同字段之间比较。...can_order T0>  默认:False 使你创建能排序表单。...can_delete T0>  默认:False 使你创建一个表单,可以选择删除一些表单。...它接受请求,应用当前过滤器查询以及用户提供搜索项。 它返回一个包含被修改以实现搜索查询元组,以及一个指示结果是否可能包含重复项布尔

24.2K80

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

使用表单 关于这页文档 这页文档简单介绍Web 表单基本概念和它们在Django 中是如何处理。关于表单API 某方面的细节,请参见表单 API、表单字段表单字段检验。...Django 会处理表单工作中三个显著不同部分: 准备并重新构造数据 为数据创建HTML 表单 接收并处理客户端提交表单和数据 可以手工编写代码来实现,但是Django 可以帮你完成所有这些工作。...它还意味着当Django 收到浏览器发送过来表单时,它将验证数据长度。 Form 实例具有一个is_valid() 方法,它为所有的字段运行验证程序。...如果渲染一个不合法绑定表单,它将包含内联错误信息,告诉用户如何纠正数据。 表单is_bound 属性将告诉你一个表单是否具有绑定数据。...从模型中创建表单 ModelForm 模型表单 Inline formsets 表单(Media 类) Assets as a static definition Media as a

4.2K20

Django内置通用类视图及实例

表示对象列表一个页面. 执行这个视图时候,self.object_list将包含视图正在操作对象列表(通常是一个查询,但不是必须)....属性: model: 视图要显示模型 queryset: 表示对象一个查询.queryset优先于model. template_name: 字符串表示模板名称. context_object_name...参数,如果找到了这个参数,该方法使用这个参数执行一个基于逐渐查询.如果这个参数没有找到,该方法查找slug_url_kwarg参数,使用slug_field字段执行针对slug查询.当query_pk_and_slug...显示用于编辑现有对象表单视图,重新显示具有验证错误信息视图,并且保存对象.这里使用从对象模型自动生成表单(除非手动制定表单类)....: form.as_ul:渲染表单为一系列li标签,每个li 标签包含一个字段 form.as_table:输出表单一个HTMLtable。

2.9K40

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

表示对象列表一个页面. 执行这个视图时候,self.object_list将包含视图正在操作对象列表(通常是一个查询,但不是必须)....属性: model: 视图要显示模型 queryset: 表示对象一个查询.queryset优先于model. template_name: 字符串表示模板名称. context_object_name...参数,如果找到了这个参数,该方法使用这个参数执行一个基于逐渐查询.如果这个参数没有找到,该方法查找slug_url_kwarg参数,使用slug_field字段执行针对slug查询.当query_pk_and_slug...显示确认页面并删除现有对象视图.仅当请求方法为POST时,才会删除给定内容.如果此视图是通过GET提取,它将显示一个确认页面,其中包含POST到同一网址表单....li标签,每个li 标签包含一个字段 form.as_table:输出表单一个HTMLtable。

3.2K10

django_2

要求 修改数据库 Django shell 数据级联(一对多) 元信息 定义字段 模型过滤 创建对象4种方式 查询 过滤器 获取单个对象 字段查询 时间 聚合函数 跨关系查询 F对象 Q对象...(用多) ·当对象第一次被创建时自动设置当前时间, 用于创建时间戳,它总是使用当前日期,默认为false ·说明 ·该字段默认对应表单控件是一个TextInput...第二个参数是limit 懒查询/缓存 查询缓存:每个查询都包含一个缓存,来最小化对数据库访问 在新建查询集中,缓存首次为空,第一次对查询求值,会发生数据缓存,django会将查询出来数据做...一个缓存,并返回查询结果,以后查询直接使用查询缓存。...·当对象第一次被创建时自动设置当前时间, 用于创建时间戳,它总是使用当前日期,默认为false ·说明 ·该字段默认对应表单控件是一个TextInput.

3.6K30

Django ORM 知识概要

db_index=True 给表单建立索引 help_text='' 表单中显示帮助信息 editable=False 表单不可编辑 个别字段才有的参数 给CharField 指定最大长度 max_length...related_name='name' 反向查询时候可能会用到 on_delete=value value CASCADE:删除引用对象时,也删除引用它对象 PROTECT:禁止删除引用对象...只有当字段设置了default参数时才能使用 SQL等价物:SET DEFAULT。 SET(value 或者 函数返回):设置给定。这个不是SQL标准一部分,完全由Django处理。...values(),values_list() 获取字典或者元组形式结果 dates(),datetimes() 根据时间日期获取查询 union(),intersection(),difference...() 并,交集,差;MySQL Innodb 只支持并 select_related() 一对一、多对一查询优化,prefetch_related() 一对多、多对多查询优化。

1.8K20

动态设置djangomodel field默认操作步骤

问题背景 djangomodel field需要动态设置默认,具体案例如下: 原始代码如下,model是Application,其中字段ignore_fort默认设置为False class Application...ModelChoiceField:过滤查询并将默认设置为对象 我有一个Django Form类定义喜欢这个在Models: class AccountDetailsForm(forms.Form...adminuser = forms.ModelChoiceField(queryset=User.objects.all()) 这工作正常,但它有一些限制,我似乎不能解决: (1)我想在查询上使用一个过滤器...因此,查询必须以某种方式在视图中定义,但就我可以看到它是一个必需字段在Form类。...你实际上创建一个绑定表,可能触发验证和所有的爵士。 要设置默认,use the initials argument.

3K50

简化 Django 开发八个 Python 包 | Linux 中国

◈   describe_form 输出模型表单定义,可以粘贴到   forms.py 文件中。(需要注意是,这种方法创建是普通 Django 表单,而不是模型表单。)...,该方法自动更新   created 和   modified 字段。...它还自带了一个启用   .active() 和   .inactive() 查询 manager。...安装了 django-environ 之后,在项目的根目录创建一个 .env 文件,用这个文件去定义那些随环境不同不同变量,或者需要保密变量。...它带有一个可选能过滤垃圾邮件表单类(也有不过滤普通表单类)和一个 ContactFormView 基类,基类方法可以覆盖或自定义修改。而且它还能引导你完成模板创建,好让表单正常工作。

2.9K20

Django项目知识点(四)

随便新建一个Django项目,默认会自动为我们创建一个/project_name/urls.py文件,并且自动包含下面的内容,这就是项目的根URL: 配置media媒体文件 settings.py #...dates() 根据日期获取查询 datetimes() 根据时间获取查询 none() 创建查询 all() 获取所有的对象 union() 并 intersection...当我们需要对查询(queryset)某些字段进行计算或进行先分组再计算或排序, 我们就需要使用aggregate和annotate方法了。...).aggregate(Max('price')) {'price__max': Decimal('81.20')} annotate 先介绍F,annotate 必用F F介绍 -个F()对象表示一个模型字段或注释...这样就可以引用模型字段并使用它们执行数据库操作,而无需实际将它们从数据库中拉出到Python内存中 说白了就是我从数据库拿东西,但是有些需要字段没有,要通过绑定外键appmodel拿。

1.5K30

Django 2.0 新特性 转

2.admin后台对移动端更加友好 Django最受大家欢迎admin后台,具有响应式特性,支持主流移动设备。 3.Window 表达式 新Window表达式允许为查询添加一个OVER从句。...; metadata现在是可读可编辑; 允许在GDAL内部虚拟文件系统中创建GDALRaster对象; 新GDALBand.color_interp()方法返回波段颜色说明。...; QuerySet.values_list()新增named参数,用于获取命名元组结果; 新FilteredRelation类允许为查询增加一个ON从句; Pagination分页 增加Paginator.get_page...QuerySet.reverse()和last()不能用于切片后查询 对切片后查询使用反转和获取最近对象操作将弹出异常,如下所示: >>> Model.objects.all()[:2].reverse...表单字段不再接收可选参数作为位置参数 为了防止运行时错误,提高可靠性。

2.6K20

关于“Python”核心知识点整理大全55

如果你刷新显示所有主题页面,再单击其中一个主题,将看到类似于图18-5所示页面。 18.5 小结 在本章中,你首先学习了如何使用Django框架来创建Web应用程序。...你制定了简要项目规 范,在虚拟环境中安装了Django创建一个项目,并核实该项目已正确地创建。你学习了如何 创建应用程序,以及如何定义表示应用程序数据模型。...创建一个名为forms.py文件,将其存储到models.py所在目录中,并在 其中编写你一个表单: forms.py from django import forms from .models...最简单ModelForm版本只包含一个内嵌Meta类,它告诉Django根据哪个模型创建表单,以 及在表单中包含哪些字段。...在处,我们根据模型Topic创建一个表单,该表单只包含字段text (见)。处代码让Django不要为字段text生成标签。 2.

12110

Django MVT之M

db_index 默认是False。若为True, 则在表中会为此字段创建索引。 db_column 字段名称。如果未指定,则使用属性名称。...null纯粹是数据库范畴概念,而blank是数据验证范畴(后台管理表单)。如果字段设置blank=True,表单验证时将允许输入空。如果字段设置blank=False,则该字段为必填。...缓存: 当使用是同一个查询时,第一次使用时候会发生实际数据库查询,然后把结果缓存起来,之后再使用这个查询时,使用是缓存中结果。...可以对一个查询进行取下标或切片操作,切片操作会产生一个查询。与python列表不同是,下标不允许为负数。...谓词 Django查询条件是一种独特字段查询表达方式,表现形式为: 字段名称__谓词= 即用‘双下划线连接字段名称和谓词’来表示查询条件。

99510

Django学习笔记 1.7 自定义 admin 站点

1 自定义后台表单 polls/admin.py 通过 admin.site.register(Question) 注册 Question 模型,Django 能够构建一个默认表单用于展示。...通常来说,你期望能自定义表单外观和工作方式。你可以在注册模型时将这些设置告诉 Django。...当我们拥有数十个字段表单,我们肯定会期望将表单分为几个字段,这样会更清晰一点: from django.contrib import admin from .models import Question...默认提供 3 个足够选项字段。” 3 自定义后台更改列表 3.1 显示列表 默认情况下,Django 显示每个对象 str() 返回。但有时如果我们能够显示单个字段,它会更有帮助。...你可以使用任意多字段——由于后台使用 LIKE 来查询数据,将待搜索字段数限制为一个不会出问题大小,会便于数据库进行查询操作。 END ----

97920

django 1.8 官方文档翻译:2-1-1 模型语法

如果一个字段blank=True,表单验证将允许该字段是空。如果字段blank=False,该字段就是必填。...可以是一个或者可调用对象。如果可调用 ,每有新对象被创建它都会被调用。 help_text 表单部件额外显示帮助内容。即使字段不在表单中使用,它对生成文档也很有用。...详见自增主键字段。 主键字段是只读。如果你在一个已存在对象上面更改主键并且保存,一个对象将会在原有对象之外创建出来。...由于Django 查询语法工作方式,字段名称中连续下划线不能超过一个。...查询始终返回请求模型 也就是说,没有办法让DJango查询Person对象时返回MyPerson对象。Person 对象查询集会返回相同类型对象。

4.9K20

Django-form表单

构建一个表单 假设你想在你网站上创建一个简单表单,以获得用户名字。你需要类似这样模板: ?...实际应用中,一个表单可能包含几十上百个字段其中大部分需要预填充,而且我们预料到用户将来回编辑-提交几次才能完成操作。 我们可能需要在表单提交之前,在浏览器端作一些验证。...它还意味着当Django 收到浏览器发送过来表单时,它将验证数据长度。 Form 实例具有一个is_valid() 方法,它为所有的字段运行验证程序。...GET 请求,它将创建一个表单实例并将它放置到要渲染模板上下文中。...当渲染给用户时,它将为空或包含默认。 绑定表单具有提交数据,因此可以用来检验数据是否合法。如果渲染一个不合法绑定表单,它将包含内联错误信息,告诉用户如何纠正数据。

3.9K70

django 1.8 官方文档翻译:13-1-2 使用Django认证系统

Django认证框架中只存在一种类型用户,因此诸如'superusers'或管理员'staff'用户只是具有特殊属性user对象,而不是不同类型user对象。...Django admin 站点使用如下权限: 查看”add”表单并添加一个只限具有该类型对象“add”权限用户对象。...查看修改列表、查看“change”表单以及修改一个只限具有该类型对象“change”权限用户对象。 删除一个只限具有该类型对象“delete”权限用户对象。...可以覆盖来自定义邮件如何发送给用户。...创建用户 在admin主页,你应该可以在“Auth”部分看到“Users”链接。“Add user” 页面与标准admin页面不同点在于它要求你在编辑用户其它字段之前先选择一个用户名和密码。

4.6K20

Django学习笔记之Django Form表单详解

知识预览 构建一个表单Django 中构建一个表单 Django Form 类详解 使用表单模板 回到顶部 构建一个表单 假设你想在你网站上创建一个简单表单,以获得用户名字。...实际应用中,一个表单可能包含几十上百个字段其中大部分需要预填充,而且我们预料到用户将来回编辑-提交几次才能完成操作。 我们可能需要在表单提交之前,在浏览器端作一些验证。...它还意味着当Django 收到浏览器发送过来表单时,它将验证数据长度。 Form 实例具有一个is_valid() 方法,它为所有的字段运行验证程序。...GET 请求,它将创建一个表单实例并将它放置到要渲染模板上下文中。...绑定表单具有提交数据,因此可以用来检验数据是否合法。如果渲染一个不合法绑定表单,它将包含内联错误信息,告诉用户如何纠正数据。

4.5K10

众多Python Web框架比较,哪个适合你,你就用哪个!

这是一个有趣系统,强调使用抽象和可重用代码块称为“多维数据”,但对于某些开发人员来说可能过于抽象或特殊。 多维数据具有模式(数据模型),实体(编程逻辑)和视图软件组件。...例如,用户管理可在大多数网站上找到,因此Django将其作为标准元素提供。Django本身具有这些功能,而不必创建自己系统来跟踪用户帐户,会话,密码,登录/注销,管理员权限等。...如果要执行表单验证,可以使用从简单CSRF保护到返回详细错误反馈完整逐个字段验证机制所有内容。 如果没有强大文档可以使用像Django那样丰富和广泛功能。...可以通过Bottle框架中对象访问和操作请求和响应数据,cookie,查询变量,来自POST操作表单数据,HTTP标头和文件上载。 每项功能都经过精心细致实施。...但是,它可以通过扩展进行扩展,其中有几十个,包括许多常见用例,如缓存,表单处理和验证,数据库连接等。这种默认设计允许开始设计具有绝对最小功能Flask应用程序,然后仅在需要时将所需部分分层。

4.5K20
领券