如何获取 Django 模型中所有带有选项的字段?

问题描述 投票:0回答:1

我有一个 Django 模型,其中有十几个带有 Choice 选项的字段,我想序列化它们的值以写入 CSV 文件。

如何遍历字段来查找带有 Choices 选项的字段? 类似这样的东西:

for field in MyModel._meta.fields:
    if field.has_choices_on_it():
        print(f.name)
python django-models
1个回答
0
投票

每个字段都有一个

.choices
,默认为
None
,因此我们可以检查它是否为
None
。但请注意,
.choices
不必必须是一系列值,它也可以是在需要时生成值的函数(例如,因为它发出数据库请求、使用 API 等)。

for field in MyModel._meta.fields:
    if field.choices is not None:
        print(f.name)
        choices = field.choices
        if callable(choices):
            choices = choices()
        print(choices)
© www.soinside.com 2019 - 2024. All rights reserved.