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

如何预填充Django (非模型)表单(如何将值列表从view.py传递到表单中的ChoiceField )?

在Django中预填充非模型表单的方式主要是通过在视图函数中传递值列表到表单的ChoiceField字段中。下面是一个示例代码:

  1. 首先,定义一个表单类(例如forms.py):
代码语言:txt
复制
from django import forms

class MyForm(forms.Form):
    my_choice = forms.ChoiceField(choices=[])

    def __init__(self, *args, **kwargs):
        choices = kwargs.pop('choices', None)
        super(MyForm, self).__init__(*args, **kwargs)
        if choices:
            self.fields['my_choice'].choices = choices
  1. 在视图函数(例如views.py)中创建表单实例,并将值列表传递给表单:
代码语言:txt
复制
from django.shortcuts import render
from .forms import MyForm

def my_view(request):
    choices = [('value1', 'Label 1'), ('value2', 'Label 2'), ('value3', 'Label 3')]
    form = MyForm(choices=choices)
    return render(request, 'my_template.html', {'form': form})
  1. 在模板文件中(例如my_template.html),使用表单实例渲染表单:
代码语言:txt
复制
<form method="post">
  {% csrf_token %}
  {{ form.as_p }}
  <button type="submit">Submit</button>
</form>

在上述代码中,我们首先定义了一个表单类MyForm,其中包含了一个my_choice字段,类型为ChoiceField。在表单类的构造方法中,我们从关键字参数中提取choices值列表,并将其赋值给my_choice字段的choices属性。

然后,在视图函数my_view中,我们创建了MyForm的实例,并将值列表作为choices参数传递进去。最后,将表单实例传递给模板文件进行渲染。

这样,当用户访问该视图函数对应的URL时,表单将会被渲染,并且my_choice字段将会预填充选项值列表中的选项。用户提交表单后,你可以在视图函数中使用request.POST来获取用户提交的数据。

推荐的腾讯云相关产品:无

该问题没有特定的腾讯云相关产品与之对应。

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

相关·内容

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

知识预览 构建一个表单Django 构建一个表单 Django Form 类详解 使用表单模板 回到顶部 构建一个表单 假设你想在你网站上创建一个简单表单,以获得用户名字。...实际应用,一个表单可能包含几十上百个字段,其中大部分需要填充,而且我们预料到用户将来回编辑-提交几次才能完成操作。 我们可能需要在表单提交之前,在浏览器端作一些验证。...我们可能想使用非常复杂字段,以允许用户做类似日历挑选日期这样事情,等等。 这个时候,让Django 来为我们完成大部分工作是很容易。...GET 请求,它将创建一个空表单实例并将它放置要渲染模板上下文中。...绑定表单具有提交数据,因此可以用来检验数据是否合法。如果渲染一个不合法绑定表单,它将包含内联错误信息,告诉用户如何纠正数据。

4.6K10

Python:Django框架

查看并理解这个文件可用设置类型及其默认。 urls.py:Django项目的URL设置。 可视其为你django网站目录。...Field 选项 选项 描述 null boolean ,默认为false。TURE=将NULL空存储数据库 blank boolean ,该字段是否可以为空。如果为假,则必须有。...解决:mysql>set persist time_zone='+8:00'; 十二、取用数据库数据 1 数据库获取所有数据 objects.all() 在view.py添加 from ....objects.first() 3 数据库获取一条数据 objects.get(**kwargs) 只能查询一条数据,查询结果包含多条的话会报错 在view.py添加 from ....objects.filter(**kwargs) 数据库取得匹配结果,返回一个对象列表,如果记录不存在的话,它会返回[] 十三、Django-后台 应用注册 若要把app应用显示在后台管理

4.4K40
  • Django-form表单

    实际应用,一个表单可能包含几十上百个字段,其中大部分需要填充,而且我们预料到用户将来回编辑-提交几次才能完成操作。 我们可能需要在表单提交之前,在浏览器端作一些验证。...我们可能想使用非常复杂字段,以允许用户做类似日历挑选日期这样事情,等等。 这个时候,让Django 来为我们完成大部分工作是很容易。...在Django 构建一个表单 Form 类 我们已经计划好了我们 HTML 表单应该呈现样子。在Django ,我们起始点是这里: ?...GET 请求,它将创建一个空表单实例并将它放置要渲染模板上下文中。...当渲染给用户时,它将为空或包含默认。 绑定表单具有提交数据,因此可以用来检验数据是否合法。如果渲染一个不合法绑定表单,它将包含内联错误信息,告诉用户如何纠正数据。

    3.9K70

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

    也可以用于不是基于选项字段 , 例如CharField —— 当选项与模型有关而不只是Widget 时,建议使用基于ChoiceField 字段。...这些方法涉及Python 高级编程,详细细节在表单Assets 主题中讲述。...其它可能需要覆盖方法: render(name, value, attrs=None) 这个方法 value参数处理方式与Widget子类不同,因为需要弄清楚如何为了在不同widget展示分割单一...render()方法执行HTML渲染时,列表每个都使用相应widget来渲染 – 第一个在第一个widget渲染,第二个在第二个widget渲染,以此类推。....> 接收一个可选参数: render_value 决定在验证错误后重新显示表单时,Widget 是否填充(默认为False)。

    5K40

    Form和ModelForm组件

    Form介绍  我们之前在HTML页面利用form表单向后端提交数据时,都会写一些获取用户输入标签并且用form标签把它们包起来。...val: val 对选中进行一次转换 empty_value= '' 空默认 MultipleChoiceField(ChoiceField)...项目中,我们编写大部分都是与Django 模型紧密映射表单。...举个例子,你也许会有个Book 模型,并且你还想创建一个form表单用来添加和编辑书籍信息这个模型。 在这种情况下,在form表单定义字段将是冗余,因为我们已经在模型定义了那些字段。...基于这个原因,Django 提供一个辅助类来让我们可以Django 模型创建Form,这就是ModelForm。 modelForm定义 form与model终极结合。

    5K10

    Django 构建模板form表单两种方法

    如何在模板文件中生成form表单: 1、自定义显示字段: 假如我们要在模板中生成一张含有username和content表单 在app下新建forms.py(/users/forms.py) from...=5) #max_length 浏览器限制用户输入字符串长度 content = forms.CharField(label='留言', max_length=100) 在视图文件引用上边表单字段并传递给模板...= Lesson fields = ['add_time', 'name', 'learn_times'] #要显示字段 在视图文件引用上边表单字段并传递给模板(users/view.py) from...所有表单类都作为 django.forms.Form 或者 django.forms.ModelForm 子类来创建。您可以把 ModelForm 想象成 Form 子类。...到此这篇关于Django 构建模板form表单两种方法文章就介绍这了,更多相关Django 构建模板form表单两种方法内容请搜索ZaLou.Cn以前文章或继续浏览下面的相关文章希望大家以后多多支持

    1.6K20

    37.Django1.11.6文档

    view_args是一个会被传递视图位置参数列表,而view_kwargs 是一个会被传递视图关键字参数字典。...在模型实例不包含数据情况下,在模板对它做处理很少有什么用处。 但是渲染一个未填充表单却非常有意义 —— 我们希望用户去填充它。 所以当我们在视图中处理模型实例时,我们一般数据库获取它。...实际应用,一个表单可能包含几十上百个字段,其中大部分需要填充,而且我们预料到用户将来回编辑-提交几次才能完成操作。 即使在提交表单之前,我们也可能需要在浏览器中进行一些验证。...可以验证文件数据已经绑定表单。...total_form_count返回此表单集中表单总数。 initial_form_count返回Formset填充表单数,也用于确定需要多少表单

    24.3K80

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

    Django 模型描述一个对象逻辑结构、行为以及展现给我们方式,与此类似,Form 类描述一个表单并决定它如何工作和展现。...实例化、处理和渲染表单Django 渲染一个对象时,我们通常: 在视图中获得它(例如,数据库获取) 将它传递给模板上下文 使用模板变量将它扩展为HTML 标记 在模板渲染表单和渲染其它类型对象几乎一样...在模型实例不包含数据情况下,在模板对它做处理很少有什么用处。但是渲染一个未填充表单却非常有意义 —— 我们希望用户去填充它。 所以当我们在视图中处理模型实例时,我们一般数据库获取它。...当我们实例化表单时,我们可以选择让它为空还是预先填充它,例如使用: 来自一个保存后模型实例数据(例如用于编辑管理表单) 我们其它地方获得数据 从前面一个HTML 表单提交过来数据 最后一种情况最令人关注...实际应用,一个表单可能包含几十上百个字段,其中大部分需要填充,而且我们预料到用户将来回编辑-提交几次才能完成操作。 我们可能需要在表单提交之前,在浏览器端作一些验证。

    4.2K20

    Django教程(三)- Django表单Form1.Form 基本使用2.Form字段及插件3.通过Django表单Form来完成需求4.自定义验证验证规则

    1.Form 基本使用 djangoForm组件有以下几个功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 2.Form字段及插件...创建Form类时,主要涉及 【字段】 和 【插件】,字段用于对用户请求数据验证,插件用于自动生成HTML; 1.Django内置字段如下: Field: required=True,...通过lambda函数实现 empty_value= '' 空默认 MultipleChoiceField(ChoiceField)多选框......{% widthratio 5 100 1 %} 上面的代码表示:5/100*1,返回0.05,只需要将第三个参数设置为1即可 ---- 3.通过Django表单Form来完成需求 1.根据用户填写表单不同跳往不同页面...,views.indexPage,), ] 6.把我们新定义app加到settings.pyINSTALL_APPS中和urls,详情见Django教程(一)- Django视图与网址 效果展示

    10.1K40

    Django Web开发基础知识

    MVC 与 MTV MVC - Model View Controller,模型(model)-视图(view)-控制器(controller)缩写,是软件工程一种软件架构模式,Model模型主要用于存储与数据库相关字段或数据库通信方面的东西...DjangoMTV模式本质上和MVC是一样,也是为了各组件间保持松耦合关系,只是定义上有些许不同,DjangoMTV分别是: M 代表模型(Model): 负责业务对象和数据库关系映射(ORM...每个由Django驱动Web应用都有着明确目的,并且可独立更改而不影响其它部分。...1 开始算 forloop.counter0 索引 0 开始算 forloop.revcounter 索引最大长度 1 forloop.revcounter0 索引最大长度 0 forloop.first...: Form表单可以返回默认数据,我们可以通过编号查询指定数据默认参数,并返回到编辑框. # name:views.py from django.shortcuts import render from

    2.1K20

    Django 表单处理流程

    Django 表单处理:视图获取请求,执行所需任何操作,包括模型读取数据,然后生成并返回HTML页面(模板),我们传递一个包含要显示数据上下文。...下面显示了 Django 如何处理表单请求流程图,对包含表单页面的请求开始(以绿色显示): [ix7djaill3.png] 基于上图,Django 表单处理主要内容是: 在用户第一次请求时,显示默认表单...表单可能包含空白字段(例如,如果您正在创建新记录),或者可能预先填充了初始(例如,如果您要更改记录,或者具有有用默认初始)。...此时表单被称为未绑定,因为它与任何用户输入数据无关(尽管它可能具有初始)。 提交请求接收数据,并将其绑定表单。...验证检查是否适合该字段(例如,在正确日期范围内,不是太短或太长等) 如果任何数据无效,请重新显示表单,这次使用任何用户填充,和问题字段错误消息。

    2.4K20

    探索Django项目创建图片上传全方位指南

    Django 目标是让开发者能够以快速和简单方式构建复杂 Web 应用,通过提供许多构建组件和功能,如 ORM(对象关系映射)、表单处理、认证系统、管理界面等,从而降低了开发工作复杂性。...在这个类,我们可以自定义模型在后台管理界面显示方式。在这个例子,我们通过设置list_display属性,指定了在Image模型列表页面显示哪些字段。...,通过将 `request.POST` 和 `request.FILES` 传递给它来填充表单数据。...form.save()#如果表单数据有效,这一行将保存表单数据数据库。...项目创建环境配置,再到 admin 端图像处理和用户图片上传,我们逐步学习了如何利用 Django 提供功能快速搭建 Web 应用。

    27473

    Django | allauth】useprofile 用户模型扩展

    ,并存储数据库。...图片 原理: allauth应用 根据setting account_signup_form_class(路由)引入该表单类,将该表单方法 siginup 替换掉原生注册表单# 自定义表单...(修改了注册表单) 四、 创建proflie模板和proflie_update模板 在allauth 包复制粘贴templates account包该项目的templatesaccount下,原因...: 我们在登录用户之后,此时系统是记录我们用户信息,而此时如果我们更改路径admin,输入我们管理员账号会报 提供了两个参数信息,这是因为管理员用户信息和当前用户信息冲突了,需要signout...当前用户 当输入密码错误时也会报和上面一样错误(当时调试了好久) 图片 效果: 图片 参考文献: 扩展用户自带模型(allauth) 扩展用户自带user模型allauth实现) 外键related_name

    1.1K10

    Django序列化器简单使用

    ,也可以将其装换称字符类型进行序列化传递前段,在前段处理数据时再进行数据类型变换 ''' price=serializers.CharField() author=serializers.CharField...() publish=serializers.CharField() 注意:serializer 不是只能为数据库模型类定义,也可以为数据库模型数据定义。...ChoiceField(choices) choices与Django用法相同 MultipleChoiceField MultipleChoiceField(choices) FileField...序列化器字段声明类似于我们前面使用过表单系统。 开发restful api时,序列化器会帮我们把模型数据转换成字典。...5、模型类序列化器 如果我们想要使用序列化器对应Django模型类,DRF为我们提供了ModelSerializer模型类序列化器来帮助我们快速创建一个Serializer类。

    1.5K40

    Django学习之八:forms组件【对

    form.non_field_errors()表示表单校验时field错误,即全局钩子错误或自己添加错误。...field.value() 就可以拿到表单具体value所对应绑定设置初始化。...而且没通过错误信息还用于渲染表单页面,提醒提交表单用户错误。 除了form.errors存放全部校验错误信息外。...form 实例,可以是空,也可以提前填充数据。归纳总结form实例化数据主要来自三个方面: 来自model instance 来自其它数据源 来自用户提交表单数据。...提供专业to_python和to_html 格式。提供了这些格式,用户输入时间字符串,就需要按照列表格式化提供时间字符串。同时,绑定了渲染页面也是按照其中格式来

    2.2K30

    Django 常用Form表单

    Django最强大部分之一是自动管理界面。它从模型读取元数据,以提供一个快速,以模型为中心界面,受信任用户可以在其中管理您网站上内容。管理员建议用法仅限于组织内部管理工具。...request.POST.get("tag_select_b") return HttpResponse("选择A: {} 选择B: {}".format(select_a,select_b))普通Form表单提交...required = True, # 不允许字段为空 min_length=4, # 设置最小长度 max_length...Form表单可以返回默认数据,我们可以通过编号查询指定数据默认参数,并返回到编辑框. # name:views.py from django.shortcuts import render from...models.DBHost.objects.filter(id=nid).values("host","title") dic = qset[0] # 转为字典 form = MyForm(dic) # 传递前端编辑框

    1.2K20

    Django | allauth】useprofile 用户模型扩展

    ,并存储数据库。...图片原理: allauth应用 根据setting account_signup_form_class(路由)引入该表单类,将该表单方法 siginup 替换掉原生注册表单# 自定义表单class...(修改了注册表单)四、 创建proflie模板和proflie_update模板在allauth 包复制粘贴templates account包该项目的templatesaccount下,原因:...:我们在登录用户之后,此时系统是记录我们用户信息,而此时如果我们更改路径admin,输入我们管理员账号会报 提供了两个参数信息,这是因为管理员用户信息和当前用户信息冲突了,需要signout...当前用户当输入密码错误时也会报和上面一样错误(当时调试了好久)效果:图片参考文献:扩展用户自带模型(allauth)扩展用户自带user模型allauth实现)外键related_namedef

    19710

    Django-多对多关系三种创建方式-forms组件使用-cookie与session-08

    cookie 操作 小练习 如何操作 session 设置 session 获取 session 删除 session 设置 session 超时时间 表模型类多对多关系三种创建方式 关系表可能还会有一个关系创建时间字段...写法和写模型表类极其相似,但是 forms 组件字段有约束,模型表类字段没有约束 from django import forms class LoginForm(forms.Form...val: val 对选中进行一次转换 empty_value= '' 空默认 MultipleChoiceField(ChoiceField)...(不合法数据依旧保留在页面的表单) forms 组件 在后端这套校验功能依旧生效 error_messages 定义中文报错提示 ?...获取 session request.session.get('name') 这句话发生了几件事 django 内部会自动请求信息获取到随机字符串 拿着随机字符串去 django_session 表中比对

    2.8K20
    领券