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

时间:2018-01-28 12:26:33

标签: python django

要获得具有选项的字段的人类可读值,Django提供get_FOO_display()方法。

当字段在ArrayField中时,如何获取人类可读的值?

例如:foo_array = models.ArrayField(models.CharField(choices=choices))

1 个答案:

答案 0 :(得分:0)

由于ArrayField没有选择,模型不会自动获取方法,但您可以随时手动实现。

class MyModel(models.Model):
    foo_array = models.ArrayField(models.CharField(choices=choices))

    def get_foo_array_display(self):
        values = self.foo_array
        return [force_text(dict(self.foo_array.flatchoices).get(value, value), strings_only=True) 
                for value in values]