我有一个 Django 模型,其中有十几个带有 Choice 选项的字段,我想序列化它们的值以写入 CSV 文件。
如何遍历字段来查找带有 Choices 选项的字段? 类似这样的东西:
for field in MyModel._meta.fields:
if field.has_choices_on_it():
print(f.name)
每个字段都有一个
.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)