如何从django列表中的模型中获取选择字段?

v1l68za4  于 2023-01-27  发布在  Go
关注(0)|答案(4)|浏览(164)

我有一个有选择字段的模型。我想获取列表中的选择选项。
我怎样才能做到呢?

OPTIONS = (
    ('COOL', 'COOL'),
    ('WARM', 'WARM'),
)
class My_Model(models.Model):
     options = models.CharField(max_length=20, choices=OPTIONS, default=None,blank=True, null=True)

我希望选项值在一个列表中,如['COOL','WARM'],如何实现它,我尝试了像My_Model. options的东西,但它不工作。

waxmsbnn

waxmsbnn1#

您可以通过以下方式获取数据:

>>> My_Model.options.field.choices
(('COOL', 'COOL'), ('WARM', 'WARM'))

因此,您可以通过以下方式获得密钥列表:

>>> [c[0] for c in My_Model.options.field.choices]
['COOL', 'WARM']

如果需要该值(为该选项渲染的部分),则使用c[1]

3b6akqbq

3b6akqbq2#

我检查了上面的代码,但它给我错误的.field
所以我尝试了其他代码,该代码对我有效。

[OPTIONS[c][0] for c in range(len(OPTIONS))]

[“凉爽”,“温暖”]

rjee0c15

rjee0c153#

[choice[1] for choice in OPTIONS]

得到

['COOL', 'WARM']

提示:我们通常不做这样的选择

不推荐:

OPTIONS = (
            ('COOL', 'COOL'),
            ('WARM', 'WARM'),
        )

我通常喜欢这个:

OPTIONS = (
    ('0', 'COOL'),
    ('1', 'WARM'),
)

如果选择多于9,则为max_length =1或两个

a0zr77ik

a0zr77ik4#

verification_STATUS =((“未验证”,“未验证”),(“已验证”,“已验证"),(”错误“,"错误”),)
我的模型验证状态
答:((“未验证”、“未验证”)、(“已验证”、“已验证”)、(“错误”、“错误”))

相关问题