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

在表单中选择多个选项,并使用django将所有选择的值存储在模型中

在表单中选择多个选项,并使用Django将所有选择的值存储在模型中,可以通过使用多对多关系来实现。

首先,需要定义一个模型来表示选项,例如:

代码语言:txt
复制
from django.db import models

class Option(models.Model):
    name = models.CharField(max_length=100)

    def __str__(self):
        return self.name

然后,在需要使用多选项的模型中,使用ManyToManyField字段来引用选项模型,例如:

代码语言:txt
复制
from django.db import models

class MyModel(models.Model):
    options = models.ManyToManyField(Option)

    def __str__(self):
        return f"MyModel {self.pk}"

接下来,创建表单类来表示选择多个选项的表单,使用ModelMultipleChoiceField字段来引用选项模型,例如:

代码语言:txt
复制
from django import forms
from .models import Option

class MyForm(forms.Form):
    options = forms.ModelMultipleChoiceField(queryset=Option.objects.all())

在视图函数中,可以使用request.POST.getlist()方法来获取用户选择的多个选项的值,并将其保存到模型中,例如:

代码语言:txt
复制
from django.shortcuts import render, redirect
from .forms import MyForm
from .models import MyModel

def my_view(request):
    if request.method == 'POST':
        form = MyForm(request.POST)
        if form.is_valid():
            options = form.cleaned_data['options']
            my_model = MyModel.objects.create()
            my_model.options.set(options)
            return redirect('success')
    else:
        form = MyForm()
    return render(request, 'my_template.html', {'form': form})

最后,在模板中使用表单来显示多个选项,并提交表单数据,例如:

代码语言:txt
复制
<form method="post" action="{% url 'my_view' %}">
  {% csrf_token %}
  {{ form.as_p }}
  <button type="submit">Submit</button>
</form>

以上是使用Django实现在表单中选择多个选项并将其存储在模型中的方法。对于云计算领域的相关名词和概念,可以进一步提供详细的解释和推荐的腾讯云产品链接。

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

相关·内容

Django大型项目中django性能模型字段primary_key

默认表单部分将是包含这些选项选择框,而不是标准文本字段。 每个元组第一个元素是要在模型上设置实际,第二个元素是人类可读名称。...,然后引用它,但在模型定义选择和每个选择名称可以使用类中保留所有这些信息,帮助引用这些选择(例如,Student.SOPHOMORE将在导入学生模型任何位置工作)。...,Django添加一个方法来检索字段当前可读名称。...path/to/hello.world') myfile = File(f) FileField或ImageField添加到模型定义upload_to选项,指定MEDIA_ ROOT子目录用于上载文件...所有这些都将存储在数据库文件路径(相对于MEDIA_ROOT)。可能会使用Django提供方便url属性。

2K20

Django 学习笔记之模型(上)

顺便补充下本文用一些工具版本:Python 版本是 3.6,Mysql 版本是 5.5 1 模型是什么 Web 应用,数据一般存储到数据库Django 模型层是跟数据库打交道层次。...模型可能会有多个模型,每个模型(每个 app models.py 每个类都是一个模型)都对应着数据库唯一一张表。... Django 所有支持数据库,-2147483648 到 2147483647 范围才是合法。...3.4 字段选项 有些字段会有些特殊参数,但所有字段类型都又些通用可选选项。先是常用可选选项。 1)null :如果该参数设置为 True,Django将会把数据库保存为 NULL。...4)unique:如果该设置为 True, 这个数据字段整张表必须是唯一。 5)default:设置该字段默认。 6)由二项元组构成一个可迭代对象(列表或元组),用来给字段提供选择项。

1.8K30

37.Django1.11.6文档

使用字符串时,所有选择框都带有这个空选项。 如果tuple 为具有3个字符串元素list 或empty_label,每个选择具有它们自定义选项。 ...如果字段是必选,它会强制用户选择一个选项。 如果模型字段default 且具有一个显示default ,将不会包含空选项(初始选择blank=False )。...(2)选择使用字段 强烈建议你使用fields 属性显式设置所有将要在表单编辑字段。 ...如果模型相应字段有选择集,则提供给表单选项必须是这些选择有效子集,否则,保存模型本身之前验证模型本身时,表单提交失败显示ValidationError 。...要使用Django缓存系统存储会话数据,您首先需要确保已配置缓存 如果你CACHES定义多个缓存,Django使用默认缓存。

24.3K80

Django 3.1 官网学习路线

应用程序可以多个项目中使用,您可以将它们打包分发给他们项目中其他人使用。...迁移是 Django 更改存储到您模型(以及您数据库模式)方式——它们是磁盘上文件。...此页面显示数据库所有问题,允许您选择一个进行更改。有“What's up?”“我们之前提出问题是: 这里需要注意是: 表单是根据问题模型自动生成。...通常,您需要定制管理表单外观和工作方式。可以通过注册对象时告诉 Django 所需选项来实现。 通过重新排列编辑表单字段来了解其工作原理。...“添加选择表单如下所示: 表单,“Question”字段是一个选择框,包含数据库每个问题。Django 知道一个外键应该在管理中表示为一个框。我们例子,目前只存在一个问题。

8.2K10

00x: Django models.Model详解

默认HTML插件 ,用以渲染表单字段(例如,) 基本验证需求,Djangoadmin中和自动生成表单使用Django自带了很多内建字段类型。...下面介绍几个比较常用设置选项: null: 若为True,Django会把空数据使用NULL存储在数据库。默认是False。 blank: 若为True,该字段允许为空。...choices: 一个可迭代元祖,用来作为字段内容选择。若这个给定,默认表单插件将会变成一个单选框而不是简单文本字段,并且单选框选项数目由给定choices来限定。...适用于Python或者Django用于实例显示为纯字符串形式,这样情形往往会出现在交互命令行窗口或者admin页面。...如果你忘记了调用父类方法,那么所有的操作都不会数据库中生效。 shell对数据库进行操作 Django提供了一个命令行工具,可以当前项目下环境,迁移到当前工作环境下。

1.6K20

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

也可以用于不是基于选项字段 , 例如CharField —— 当选项模型有关而不只是Widget 时,建议使用基于ChoiceField 字段。...处理表单数据过程,value_from_datadict 可能调用多次,所以如果你自定义添加额外耗时处理时,你应该自己实现一些缓存机制。...—— 所有字段组合成一个。...render()方法执行HTML渲染时,列表每个使用相应widget来渲染 – 第一个第一个widget渲染,第二个第二个widget渲染,以此类推。...当使用字符串时,所有选择框都带有这个空选项。如果empty_label 为具有3个字符串元素列表 或元组,每个选择具有它们自定义选项

5K40

django模型

unique 更多 字段选项——null 如果为True,Django将用NULL来在数据库存储 默认:False 字段选项——blank 如果为True , 该字段允许不填 默认:False...如列表或元组),用来给字段提供选择项,如果设置了 choices, 默认表单将是一个选择框,选择选择就是choices选项 class Test(model.Model): YEAR_IN_SCHOOL_CHOICES...——default 字段默认,可以是一个或者调用对象 字段选项——primary_key 如果为True,那么这个字段就是模型主键 字段选项——unique 如果该设置为True,这个字段整张表必须是唯一...模型添加class Meta是完全可选所有选项都不是必须。...也可以使用一条语句创建保存一个对象,使用create()方法 查询对象 通过模型管理器构造一个查询集,来从你数据库获取对象。 查询集(queryset)表示从数据库取出来对象集合。

3.1K20

django_2

定义属性 概述 ·django根据属性类型确定以下信息 ·当前选择数据库支持字段类型 ·渲染管理表单使用默认html控件 ·管理站点最低限度验证 ·django...·null ·如果为True,Django 以NULL 存储到数据库,默认是 False ·blank ·如果为True,则该字段允许为空白,默认是 False..., 这个字段必须有唯一 关系 ·分类 ·ForeignKey:一对多,字段定义 ·ManyToManyField:多对多,字段定义两端 ·OneToOneField...概述 ·django根据属性类型确定以下信息 ·当前选择数据库支持字段类型 ·渲染管理表单使用默认html控件 ·管理站点最低限度验证 ·django...,可以实现对字段约束 ·字段对象时通过关键字参数指定 ·null ·如果为True,Django 以NULL 存储到数据库,默认是 False ·blank

3.6K30

Django 定义模型2.1

定义模型 模型定义属性,会生成表字段 django根据属性类型确定以下信息: 当前选择数据库支持字段类型 渲染管理表单使用默认html控件 管理站点最低限度验证 django...会为表增加自动增长主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后,则django不会再生成默认主键列 属性命名限制 不能是python保留关键字 由于django查询方式...,确保它是个有效image 字段选项 通过字段选项,可以实现对字段约束 字段对象时通过关键字参数指定 null:如果为True,Django 以NULL 存储到数据库,默认是 False...关系 关系类型包括 ForeignKey:一对多,字段定义 ManyToManyField:多对多,字段定义两端 OneToOneField:一对一,字段定义在任意一端...访问id:对象.属性_id heroinfo.book_id 元选项 模型定义类Meta,用于设置元信息 元信息db_table:定义数据表名称,推荐使用小写字母,数据表默认名称 <app_name

1.2K30

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

页面的底部还为你提供了几个选项: Save – 保存更改返回到当前类型对象更改列表页面。 Save and continue editing – 保存更改并重新载入当前对象管理界面。...通过 admin.site.register(Poll) 注册了 Poll 模型Django 就能构造一个默认 表单。通常情况下,你将要自定义管理表单外观和功能。...Add choice” 表单 看起来像这样: 该表单,Poll 字段是一个包含了数据库每个 poll 选择框。...Django 知道 ForeignKey 管理网站以 框显示。本例选择仅存在一个 poll 。 另外请注意 Poll 旁边 “Add Another” 链接。...如果你在窗口中添加了一 poll 点击了 “Save” 按钮, Django 会将 poll 保存至数据库并且动态添加为你正在查看 “Add choice” 表单选择项。

2.5K40

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

还有一些适用于所有字段通用参数。 这些参数参考中有详细定义,这里我们只简单介绍一些最常用: null 如果为True,Django 将用NULL 来在数据库存储。...如果设置了choices ,默认表单将是一个选择框而不是标准文本框,而且这个选择选项就是choices 选项。...模型添加class Meta是完全可选所有选项都不是必须所有选项完整列表可以模型选项参考找到。...Django 未来一直会扩展内建模型方法功能添加新参数。如果在你方法定义中使用*args, **kwargs,保证你代码自动支持这些新参数。...多表继承Meta 多表继承,子类继承父类 Meta类是没什么意义所有的 Meta 选项已经对父类起了作用,再次使用只会起反作用。

4.9K20

Django模型model

: 根据对象类型生成数据库表结构 将对象、列表操作,转换为sql语句 sql查询到结果转换为对象、列表 Django模型包含存储数据字段和约束,对应着数据库唯一表 ORM.png 2....定义模型模型定义属性,会生成数据库表字段 django根据属性类型确定以下信息: 当前选择数据库支持字段类型 渲染管理表单使用默认html控件 管理站点最低限度验证 django...会为表增加自动增长主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后,则django不会再生成默认主键列 属性命名限制 不能是python保留关键字 由于django查询方式,不允许使用连续下划线...模型字段选项 通过字段选项,可以实现对字段约束 字段对象时通过关键字参数指定 null:如果为True,Django 以NULL 存储到数据库,默认是 False blank:如果为True...模型类之间关系 关系类型包括 ForeignKey:一对多,字段定义 ManyToManyField:多对多,字段定义两端 OneToOneField:一对一,字段定义在任意一端

12010

Python:Django框架

查看理解这个文件可用设置类型及其默认。 urls.py:Django项目的URL设置。 可视其为你django网站目录。...特别说明:django2.1之前使用是url(),它使用是正则,如果你仍然想使用正则表达式在你route,你可以使用re_path(),它用法也path基本完全相同,只是 配置route时,...Field 选项 选项 描述 null boolean ,默认为false。TURE=NULL空存储到数据库 blank boolean ,该字段是否可以为空。如果为假,则必须有。...choices 元组,一个用来选择2维元组。第一个是实际存储,第二个用来方便进行选择。...:以表格形式加载表单元素 :以段落形式加载表单元素 :以列表形式加载表单元素 使用实例 app中新建forms.py,添加 from django import forms class RegisterForms

4.3K40

django filter过滤器实现显示某个类型指定字段不同方式

设置为False 时,表字段为必须输入字段 choices 备选设置。选择列表选项,如果设置后,该字段表单必然会是下拉选择。...default 默认,设置后在用户无输入时,表字段将以这个选项内容来存储到数据库字段 可以为python 支持任意数据对象 editable 如何设置为False,将不会参与到表单验证。...help_text 表单形成输入提示内容 primary_key 主键,设置为 True ,该字段启用为主键。...CharField可变长字符串字段 max_length 有最大输入选项为必须设置选项 DateField日期字段 auto_now:每一次保存对象时,Django 都会自动将该字段设置为当前时间...auto_now_add:第一次创建对象时,Django 自动将该字段设置为当前时间,一般用来表示对象创建时间。

3K60

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

除非你计划构建网站和应用只是发布内容而不接受访问者输入,否则你需要理解使用表单Django 提供广泛工具和库来帮助你构建表单来接收网站访问者输入,然后处理以及响应输入。...HTML 表单 HTML表单是位于... 之间元素集合,它们允许访问者输入文本、选择选项、操作对象和控制等等,然后信息发送回服务器。...模型实例不包含数据情况下,模板对它做处理很少有什么用处。但是渲染一个未填充表单却非常有意义 —— 我们希望用户去填充它。 所以当我们视图中处理模型实例时,我们一般从数据库获取它。...当我们实例化表单时,我们可以选择让它为空还是预先填充它,例如使用: 来自一个保存后模型实例数据(例如用于编辑管理表单) 我们从其它地方获得数据 从前面一个HTML 表单提交过来数据 最后一种情况最令人关注...这是我们第一个访问该URL 时预期发生情况。 如果表单提交使用POST 请求,那么视图再次创建一个表单实例使用请求数据填充它:form = NameForm(request.POST)。

4.2K20

django 字段类型_access数据库类型是

**注意:**模型使用FileField或ImageField时,需要执行以下几个步骤: l settings.py定义MEDIA_ROOT为django设置存储上载文件目录完整路径(这些文件并未直接存储在数据库...l 存储在数据库所有文件都是该文件路径(相对于MEDIA_ROOT)。如果ImageField调用了,则mug_shot可以使用来获取摸板图像绝对路径。...默认表单格式为TextInput。 (18) TextField 文本字段。默认表单小部件是Textarea,如果指定max_length属性,反映在Textarea自动生成表单字段。...此字段默认表单小部件是TextInput。 像所有CharField子类一样,URLField采用可选 max_length参数。如果未指定 max_length,则使用默认200。...(21) UUIDField 用于存储通用唯一标识符字段。使用Python UUID类。PostgreSQL上使用时,它存储uuid数据类型,否则存储 char(32)。

3.8K30

Flask(1)- 简介

选项(比如使用何种模板引擎) 通常有多个,用户很容易替换 Flask 扩展性 默认情况下,Flask 不包含数据库抽象层、模板引擎、身份认证或其它任何已有多种库可以胜任功能 但是 Flask 支持用扩展来给应用添加这些功能...也称作按约定编程是一种软件设计范式 目的在于减少软件开发人员所需要做出决定数量,从而将开发变得简单,而又不失去其中灵活性,开发人员仅仅需要规定应用不符合约定部分 Flask 存在有众多配置选项...,但是初始状况下,它们都有一个常用默认,并会遵循一些惯例 例如:按照惯例,模板和静态文件分别存储应用 Python 源代码树下子目录 templates 和 static 里 虽然这个配置可以修改...,Django 集成有模板、表单、路由、认证、基本数据库管理等内建功能,开发者不用在选择应用基础设施上花费大量时间 Django 就像是一个装潢好房子(如下图所示),它提供了各种家具,直接入住即可...推荐新手学习 Flask 框架,可以先从 Flask 开始,后使用 Django 重构,因为如果直接上 Django,作为新手,面对 Django 内置各种繁杂功能产生很多疑惑 就如同搭积木,如果直接给你一个搭好模型

52730

Django教程 —— 模型类详解

引言 之前 Django模型设计 简单介绍了如何定义模型类,在这篇中将做一个汇总。让大家更加了解Django模型类。...: 当前选择数据库支持字段类型 渲染管理表单使用默认html控件 管理站点最低限度验证 Django 会为表创建自动增长主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后...定义属性时需要指定字段类型,通过字段类型参数指定选项,语法如下: 属性 = models.字段类型(选项) 模型字段类型 使用时需要引入django.db.models 包 from django.db...primary_key 若为True,则该字段会成为模型主键字段,默认是False。 unique 如果为True, 这个字段必须有唯一,默认是False。...模型定义类 Meta,用于设置元信息,如使用 db_table 自定义表名字。

1.7K20

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

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

1.7K20

Django(14)模型中常用属性(超详细)

因为Django处理字符串相关Field时候,即使这个Fieldnull=False,如果你没有给这个Field传递任何,那么Django也会使用一个空字符串""来作为默认存储进去。...因此如果再使用null=True,Django会产生两种空情形(NULL或者空字符串)。如果想要在表单验证时候允许这个字符串为空,那么建议使用blank=True。...而blank是表单验证级别的。 db_column 这个字段在数据库名字。如果没有设置这个参数,那么将会使用模型属性名字。 default 默认。...db_index 默认为False,若为True,则以此字段来创建数据库索引 choices 中文示例:SEX_CHOICES=((1, '男'),(2, '女')),元组第一个元素是存储在数据库...,第二个元素是将在页面显示,最常见用于下拉选择框select 模型Meta选项 字段 说明 abstract 若为True,则改模型为抽象模型,不会在数据库里创建数据表 db_table

82430
领券