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

Posted

技术标签:

【中文标题】如何从列表中的 django 模型中获取选择字段?【英文标题】:How to get choices field from django models in a list? 【发布时间】:2021-09-18 22:06:32 【问题描述】:

我有一个具有选择字段的模型。我想获取列表中的选项。请帮助我实现这一目标

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 但它不起作用

【问题讨论】:

【参考方案1】:

我检查了上面的代码,但它在 .field 上给了我错误

所以我尝试了其他代码,该代码对我有用。

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

['酷','暖']

【讨论】:

【参考方案2】:

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

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

因此,您可以通过以下方式获取键列表:

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

如果您想要该值(为该选择呈现的部分),请使用c[1]

【讨论】:

以上是关于如何从列表中的 django 模型中获取选择字段?的主要内容,如果未能解决你的问题,请参考以下文章

Django模型中的下拉列表

django - 表单中的动态选择字段

Django:获取模型字段列表?

从 django 中的模型字段在 ListView 中创建列表

在 Django 模型中保存时区

如何使用 django rest 框架在模板中获取模型选择字段名称而不是 id