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

当嵌套在ArrayField中时,从Django的ChoiceField中获取人类可读的值

,可以通过以下步骤实现:

  1. 首先,确保在Django模型中定义了ArrayField和ChoiceField。例如,假设我们有一个名为MyModel的模型,其中包含一个名为choices的ChoiceField和一个名为array_field的ArrayField。
代码语言:txt
复制
from django.db import models

class MyModel(models.Model):
    CHOICES = (
        ('option1', 'Option 1'),
        ('option2', 'Option 2'),
        ('option3', 'Option 3'),
    )
    
    choices = models.CharField(max_length=10, choices=CHOICES)
    array_field = models.ArrayField(models.CharField(max_length=10, choices=CHOICES))
  1. 在视图或表单中,当需要获取ArrayField中的人类可读的值时,可以使用以下代码:
代码语言:txt
复制
from django import forms
from .models import MyModel

class MyForm(forms.ModelForm):
    class Meta:
        model = MyModel
        fields = ['array_field']
        
    def clean_array_field(self):
        array_field = self.cleaned_data['array_field']
        choices = dict(MyModel.CHOICES)
        human_readable_values = [choices.get(value, value) for value in array_field]
        return human_readable_values

在上述代码中,我们定义了一个名为clean_array_field的方法,用于获取ArrayField中的人类可读的值。首先,我们获取到ArrayField的原始值,然后使用MyModel.CHOICES字典将原始值转换为人类可读的值。最后,我们返回人类可读的值。

  1. 在模板中,可以通过以下方式显示人类可读的值:
代码语言:txt
复制
{% for value in form.array_field.value %}
    {{ value }}
{% endfor %}

在上述代码中,我们使用模板标签{% for %}循环遍历ArrayField的人类可读的值,并将其显示在模板中。

这样,当嵌套在ArrayField中时,我们可以从Django的ChoiceField中获取人类可读的值,并在视图或模板中使用。

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

相关·内容

Python:Django框架

查看并理解这个文件可用设置类型及其默认。 urls.py:Django项目的URL设置。 可视其为你django网站目录。...特别说明:django2.1之前使用是url(),它使用是正则,如果你仍然想使用正则表达式在你route,你可以使用re_path(),它用法也path基本完全相同,只是在 配置route,...解决: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 实例具有一个is_valid() 方法,它为所有的字段运行验证程序。...调用这个方法,如果所有的字段都包含合法数据,它将: 返回True 将表单数据放到cleaned_data属性。 完整表单,第一次渲染,看上去将像: ?...注:Django 原生支持一个简单易用跨站请求伪造防护。提交一个启用CSRF 防护POST 表单,你必须使用上面例子csrf_token 模板标签。...渲染给用户,它将为空或包含默认。 绑定表单具有提交数据,因此可以用来检验数据是否合法。如果渲染一个不合法绑定表单,它将包含内联错误信息,告诉用户如何纠正数据。

    3.9K70

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

    我们可能想使用非常复杂字段,以允许用户做类似日历挑选日期这样事情,等等。 这个时候,让Django 来为我们完成大部分工作是很容易。...它还意味着Django 收到浏览器发送过来表单,它将验证数据长度。 Form 实例具有一个is_valid() 方法,它为所有的字段运行验证程序。...调用这个方法,如果所有的字段都包含合法数据,它将: 返回True 将表单数据放到cleaned_data属性。...注:Django 原生支持一个简单易用跨站请求伪造防护。提交一个启用CSRF 防护POST 表单,你必须使用上面例子csrf_token 模板标签。...回到顶部 Django Form 类详解 绑定和未绑定表单实例 绑定和未绑定表单 之间区别非常重要: 未绑定表单没有关联数据。渲染给用户,它将为空或包含默认

    4.6K10

    python测试开发django-rest-framework-91.ChoiceField选项字段校验

    前言 当我们需要校验选项字段时候,需用到 ChoiceField 来校验 选项 在 model 模型里面有个字段是选项字段, goods_status 可以有2种状态,0是下架,1是出售,默认 class...我们想让它显示 下架 和出售,这样看起来更友好 序列化 在序列化类里面使用get__display方法,该方法获得choice字段对应数据 下架和出售....返回选项可读字符串 # 作者-上海悠悠 QQ交流群:717225969 # blog地址 https://www.cnblogs.com/yoyoketang/ class GoodsSerializer...序列化输出时候,就可以显示出售 ?...相关用法可以参考https://stackoverflow.com/questions/28945327/django-rest-framework-with-choicefield

    1.4K20

    django form规则组件笔记(附代码)

    9.4 initial=None 9.5 obj.as_p 9.6 disabled=False, 9.7 widget=None 10 widget属性可以定义html哪些插件 10.0 choices选项可以数据库获取...,里面有这个属性,那么将这个对象返回给前端,就可以直接显示,获取方法是 动态生成标签 9.2 label_suffix=None label_suffix=None Label内容后缀...默认渲染input框; 我们在自定义admin后台新增页面,或者修改页面的时候,就可以根据这个属性进行自定义标签形式; 10 widget属性可以定义html哪些插件 10.0 choices选项可以数据库获取...from django.core.validators import RegexValidator class MyForm(Form): user = fields.ChoiceField...=((1,'上海'),(2,'北京'),)) # ) # 单select,为字符串 # user = fields.ChoiceField( # choices=((1, '上海'), (

    97410

    一篇文章浅析Django Form组件相关知识

    前言 在上一篇,我们小试牛刀了以下Django Form组件使用,一篇文章带你了解Django Form组件(入门篇),没来得及小伙伴可以一起看看。但是你可能会有很多疑问,并不知道怎么使用。...Form组件理解 没有使用Form组件 在一般情况下,我们如果编写输入框,在Html,一般都是这样写。 代码 ......) queryset=None # 查询数据库数据 empty_label="---------" # 默认空显示内容 to_field_name=None # HTMLvalue...对应字段 limit_choices_to=None # ModelForm对queryset二次筛选 # 多选 from django.forms.models import ModelMultipleChoiceField...( choices=((1,'一班'),(2,'二班'),), initial=[1,], widget=widgets.SelectMultiple ) # 数据库获取多选

    98330

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

    自定义Widget 实例 Django 渲染Widget 成HTML ,它只渲染最少标记 —— Django 不会添加class 名称和特定于Widget 其它属性。...render()方法执行HTML渲染,列表每个都使用相应widget来渲染 – 第一个在第一个widget渲染,第二个在第二个widget渲染,以此类推。...这个方法POST 字典获取数据,并且构造和验证日期。如果日期有效,会返回它字符串,否则会返回一个空字符串,它会使form.is_valid返回False。... choices 表单字段没有choices 属性,该属性是随意。如果字段有choice 属性,字段该属性更新,它将覆盖你在这里任何设置。...一个处理多个隐藏Widget Widget,用于为一个列表字段。 choices 表单字段没有choices 属性,这个属性是可选

    5K40

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

    orm 书籍表和作者表多对多关系是通过 Book2Author 来记录 # through fields 告诉 django orm 记录关系用过 Book2Author 表 book 字段...val: val 对选中进行一次转换 empty_value= '' 空默认 MultipleChoiceField(ChoiceField)...针对字段 函数名 是固定获取字段 是固定,返回 写法是固定 ? 可以处理其他字段?那不就是全局钩子?...获取 session request.session.get('name') 这句话发生了几件事 django 内部会自动请求信息获取到随机字符串 拿着随机字符串去 django_session 表中比对...在django 项目中有参数不好传,可以放在 session 里,就全局变量一样,直接 session 里拿就能拿到了

    2.8K20

    自定义Django Formchoicefield下拉菜单选取数据库内容实例

    工作遇到问题,自定义了一个forms.form表单,某项需要作出下拉菜单,下拉菜单选项需要从数据库(objectForm models)中提取. form.py为: class objectForm...百度了很多Django Form问题都没有得到解决,写出来方便后来人。...补充知识:django form表单select下拉菜单数据源实时更新(每次访问获取一次数据库内容) 重点是: Form类对象实例化时候,在类里边__init()__函数中加入重新更新select数据源...import forms from django.forms import widgets #静态字段,value_list获取列表[()]加元组返回 class Fromdb(forms.Form...Formchoicefield下拉菜单选取数据库内容实例就是小编分享给大家全部内容了,希望能给大家一个参考。

    1.7K30

    Django之forms组件

    一、校验数据功能   我们在写注册页面,之前只是提交了数据,然后就保存了数据,后端根本就没有对数据进行校验,比如价格写不是纯数字也让保存,这肯定是不行,在前端是可以校验,但我们不能只依靠前端验证...现在注册页面要向我提交三个数据,用户名、密码、邮箱,它提交过来后,首先我要对数据进行校验,根据数据校验结果然后再决定保存还是给前端返回错误信息。   ...-----", # 默认空显示内容 to_field_name=None, # HTMLvalue对应字段 limit_choices_to=None...lambda val: val 对选中进行一次转换 empty_value= '' 空默认 MultipleChoiceField(ChoiceField...,因为在进行钩子验证,会把给清空

    2.2K10

    Django之Form组件

    一 Form介绍   我们之前在HTML页面利用form表单向后端提交数据,都会写一些获取用户输入标签并且用form标签把它们包起来。   ...Django form组件就实现了上面所述功能。   ...="用户名") #form字段名称写是什么,那么前端生成input标签时候,input标签name属性就是什么 pwd = forms.CharField(label="密码")...字段】 和 【插件】,字段用于对用户请求数据验证,插件用于自动生成HTML;   initial     初始,input框里面的初始。...需要注意choices选项可以配置数据库获取,但是由于是静态字段 获取无法实时更新,需要重写构造方法从而实现choice实时更新。

    1.1K20
    领券