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

带有ModelBase的Django Formsets不会默认呈现复选框而是一个下拉列表

Django是一个流行的Python Web框架,它提供了强大的表单处理功能。Formsets是Django中用于处理多个表单的工具,它允许我们一次性处理多个表单实例。

在Django中,如果我们使用带有ModelBase的Formsets,它会根据模型的字段类型自动选择合适的表单字段类型。对于布尔类型的字段,它默认会呈现为复选框。然而,对于某些特定的情况,比如希望将布尔字段呈现为下拉列表,我们需要进行一些额外的配置。

要将带有ModelBase的Django Formsets中的布尔字段呈现为下拉列表,我们可以通过自定义表单字段来实现。以下是一个示例代码:

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

class CustomBooleanField(forms.TypedChoiceField):
    def __init__(self, *args, **kwargs):
        kwargs['coerce'] = lambda x: bool(int(x))
        kwargs['choices'] = ((1, 'True'), (0, 'False'))
        super().__init__(*args, **kwargs)

class MyForm(forms.ModelForm):
    my_boolean_field = CustomBooleanField()

    class Meta:
        model = MyModel
        fields = '__all__'

MyFormSet = formset_factory(MyForm, formset=BaseModelFormSet)

在上面的代码中,我们定义了一个名为CustomBooleanField的自定义表单字段,它继承自TypedChoiceField。我们通过设置coerce参数将传入的值转换为布尔类型,然后通过设置choices参数来定义下拉列表的选项。

然后,我们在MyForm中使用这个自定义字段来代替默认的布尔字段。最后,我们使用formset_factory创建一个自定义的Formset类。

这样,当我们在模板中使用这个自定义的Formset类时,布尔字段将以下拉列表的形式呈现。

关于Django Formsets的更多信息,你可以参考腾讯云的文档:Django Formsets

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

相关·内容

AngularDart Material Design 选择 顶

hideCheckbox bool 是否隐藏复选框默认为False。 isHidden bool 是否应隐藏该项目。 默认为False。...useCheckMarks bool 如果为true,则使用复选标记而不是复选框来指示是否为多选项目选择了该项目。 此特定样式用于多选菜单项组材料菜单下拉列表。...buttonAriaLabelledBy String 在下拉按钮中描述选择元素id。 例如,对于带有数字选项下拉列表,显示“每页结果”文本元素。...DropdownButtonComponent Selector: 一个专门用于下拉菜单按钮。 默认情况下,此按钮呈现带有三角形图标和下划线。...ariaLabelledBy String  另外描述按钮元素id。 例如,对于带有数字选项下拉列表,显示“每页结果”文本元素。

6K20
  • Django源码中metaclass使用是如何兼容Python2和Python3

    Django源码 Django2.0开始不再兼容Python2.x了,因此Django2.0dev中关于metaclass使用代码是这样: class Model(metaclass=ModelBase...我们来看下Django1.11中这部分代码是怎么写,github - django源码: class Model(six.with_metaclass(ModelBase)): pass #...返回一个S类型新对象,注意,这个新对象并不是我们平时写代码中实例,而是类。因为S必须是type子类(继承自type)。 我们还是来通过代码认识下: # 1....那么问题又来了,大部分情况下我们并不会定义__metaclass__,那类是怎么创建呢?...也就是默认是使用type来创建类。 这个__metaclass__你可以理解为Python暴露给我们一个接口,用来自己实现创建类过程。

    1K30

    后台系统设计(上篇:选择)

    常见类型: ·单选按钮 ·复选框 ·图标切换 ·切换开关 ·穿梭框/列表构造器 ·下拉菜单 一、单选按钮 允许用户从一组相互排斥选项中选择一个。通常,将一个选项定义为默认选择。 外观 常规: ?...最佳用法 ·只有一个选项或仅仅有两个相互排斥选项,考虑单个复选框或切换开关等其他非互斥选择控件;若当前选项过多时,且在有限屏幕空间下,考虑使用下拉菜单或列表框。...最佳用法 ·复选框用于表示状态标记,不会直接导致命令触发,需要最终和命令按钮(如提交、确定等)操作配合,若是直接触发请改用切换开关(切换开关并非绝对情况下都是直接触发命令操作);若复选选项过多时,且有限屏幕空间下...·如果只有一个复选框,可以根据表单格式选择使用标签、文本或组合;如果有多个复选框,标签将描述整个复选框,而文本则是表述各自选项。 ?...习惯用法是遵循互联网产品中一些默认处理方式,例如,注册中同意条款就是使用复选框

    9.7K21

    详解python django面向关系数据库ORM对象映射系统(1)

    所以这里我们主要关注表、行,djangoORM系统中,允许让应用开发者定义一个继承django.db.models.Model(事实上是django.db.models.base.Model)类对应着表...,查询就不会django执行。...通常,我们可以在Model基类中提供一个方法或者成员,返回一个包含QuerySet中方法对象(QuerySet表示若干行,所以此时不能直接返回QuerySet),而django选择提供一个成员叫objects...python允许开发者使用元类在运行时更改生成“类”方式。 就像object是所有类基类,而type是所有元类基类。任何类都是由type生成,哪怕我们显式定义类也会由type默认生成。...所以,虽然用户描述表Model类并没有使用元类,但仍然隐式得通过基类django.db.models.base.Model类使用了上面的ModelBase元类。

    1.2K20

    html下拉框设置默认值_html下拉列表默认

    HTTP 服务默认…… name 属性值必须要相同,必须有一个 value 值 实现默认选中属性 :checked=”checked” – 文件输入项(在后期上传时候用到): -下拉…… html>...8.3多行文本输入框 8.4下拉列表框、 在表单中,通过和标记可 以在浏览器中设计一个下拉列表带有滚动 …… > 指定要创建控件类型 Text 默认值,创建一个单行文本输入控件 Password...创建一个密码框输入控件 Checkbox 创建一个复选框控件 Radio 创建一个单选按钮控件 Submit…… 7.要在表单中添加一个默认时为选中状态复选框,应使用语句 ⑨。...…… 列表 定义表单中下拉菜单项目 设置下拉式菜单默认项目 设置下拉菜单项目的值 A 441 HTML 基础篇 HTML 进阶篇 CSS 基础篇 CSS 进阶篇 附录篇 续表 HTML …… 4-5...下拉列表框,节省空间 下拉列表在网页中也常会用到,它可以有效节省网页空… (复选框 ) 2).

    33.8K21

    HTML表单和组件

    表单 基本所有的网页无非就是在做两件事情:1.呈现数据给客户看,2.接收用户输入数据。所以表单就是用来收集用户输入数据,然后提交给服务器。 示例图: ?...2.表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。...在默认情况下,HTMLform表单中enctype属性默认指定是:application/x-www-form-urlencoded类型,也就是不带有文件数据提交类型。...enctype属性里另一个关键字为:multipart/form-data,这就是指定带有文件提交类型,所以一般使用到enctype属性也就只会用到multipart/form-data关键字,因为默认就是...不常用属性: checked,这个属性在单选框或者复选框上使用,哪个单选框或者复选框上声明了这个属性,那么就会默认选择声明了此属性组件,示例: ? 运行结果: ?

    2.7K60

    HTML标签(二)

    一个清爽简约表格能够把繁杂数据表现得很有条理 表格不是用来布局页面的,而是用来展示数据。 表格具体用法 <!...无序列表 标签表示 HTML 页面中项目的无序列表,一般会以项目符号呈现列表项,而列表项使用 标签定义。... 与 之间相当于一个容器,可以容纳所有元素。 无序列表带有自己样式属性,但在实际使用时,我们会使用 CSS 来设置。...有序列表带有自己样式属性,但在实际使用时,我们会使用 CSS 来设置。 自定义列表 自定义列表使用场景: 自定义列表常用于对术语或名词进行解释和描述,定义列表列表项前没有任何项目符号。...在 标签中,包含一个 type 属性,根据不同 type 属性值,输入字段拥有很多种形式(可以是文本字段、复选框、掩码后文本控件、单选按钮、按钮等)。

    18310

    07.HTML实例

    ) 单元格间距(Cell spacing) HTML 列表 无序列表 有序列表 不同类型有序列表 不同类型无序列表 嵌套列表 嵌套列表 2 定义列表 HTML Forms 和 Input...创建文本域(Text fields) 创建密码域 复选框 单选按钮 简单下拉列表 预选下拉列表 本例演示如何创建一个文本域(多行文本输入控件)。...创建一个按钮 本例演示如何在数据周围绘制一个带标题框。...带有文本域与输入域表单 点击提交 带有复选框与提交按钮form表单 点击提交 带有单选框与提交按钮表单 点击提交 发送邮件表单 HTML iframe 内联框架 (HTML页面中插入框架)...HTML 头部元素 描述了文档标题 HTML页面中默认URL链接 提供文档元数据 HTML 脚本 插入一个脚本 使用 标签

    8.1K40

    人生苦短,我用PyCharm

    在下一个页面上,直接保留默认设置,并点击「Next: Featured plugins」,这时 PyCharm 将展示可用插件列表。...选择「New environment using」,打开其右方下拉列表,选择 Virtualenv、Pipenv 或 Conda。...如有必要,你也可以使用 F7 跳转到当前行内函数。随着你继续执行语句,变量变化将自动呈现在 Debugger 窗口。 注意 Debugger 标签右侧有一个 Console 标签。...打开下拉列表,选择 Project Interpreter: ? 从下拉列表中选择 virtualenv。如果没有要选择项,则点击下拉列表右方设置按钮选择 Add…。...选择 Django。 检查复选框 Enable Django support。 应用更改。 现在确保了对 Django 支持,你在 PyCharm 中 Django 开发之旅将轻松很多。

    2.6K10

    html学习笔记第二弹

    如果使用thead、tfoot以及tbody元素,就必须使用全部元素。它们出现次序是:thead、tfoot、tbody,这样浏览器就可以在收到所有数据前呈现页脚了。...之间相当于一个容器,可以容纳所有元素。 无序列表带有自己样式属性,但在实际使用时,我们会使用 CSS 来设置。...之间相当于一个容器,可以容纳所有元素。 无序列表带有自己样式属性,但在实际使用时,我们会使用 CSS 来设置。 自定义列表 自定义列表不仅仅是一列项目,而是项目及其注释组合。...在标签中包含一个type属性,根据不同type属性值,输入字段拥有很多种信息(文本字段、复选框、掩码后文本控件、单选按钮、按钮等) input...name表单元素名字, 要求单选按钮和复选框要有相同name值. checked属性主要针对于单选按钮和复选框, 主要作用一打开页面,就要可以默认选中某个表单元素 maxlength是用户可以在表单元素输入最大字符数

    3.9K10

    html学习笔记第二弹

    如果使用thead、tfoot以及tbody元素,就必须使用全部元素。它们出现次序是:thead、tfoot、tbody,这样浏览器就可以在收到所有数据前呈现页脚了。...之间相当于一个容器,可以容纳所有元素。 无序列表带有自己样式属性,但在实际使用时,我们会使用 CSS 来设置。...之间相当于一个容器,可以容纳所有元素。 无序列表带有自己样式属性,但在实际使用时,我们会使用 CSS 来设置。 自定义列表 自定义列表不仅仅是一列项目,而是项目及其注释组合。...在标签中包含一个type属性,根据不同type属性值,输入字段拥有很多种信息(文本字段、复选框、掩码后文本控件、单选按钮、按钮等) input为单标签 type属性设置不同属性值用来指定不同控件类型...name值. checked属性主要针对于单选按钮和复选框, 主要作用一打开页面,就要可以默认选中某个表单元素 maxlength是用户可以在表单元素输入最大字符数, 一般较少使用 label标签 <

    9410
    领券