首页
学习
活动
专区
工具
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中获取人类可读的值,并在视图或模板中使用。

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

相关·内容

没有搜到相关的沙龙

领券