使用 django 模型和迁移进行枚举的最佳实践

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

我有一个 django 模型,其中一个字段使用枚举作为其选择元组,如下所示:

VERSION_CHOICES = tuple(
    (v.value, v.value) for v in ForwardsUpdateEventSensitivityVersion
)
version = models.CharField(
    max_length=max(len(s[0]) for s in VERSION_CHOICES),
    choices=VERSION_CHOICES,
)

编写随附迁移的最佳实践是什么?

像这样直接使用枚举:

models.CharField(
    choices=[
        tuple(
            (v.value, v.value)
            for v in ForwardsUpdateEventSensitivityVersion
        )
    ],
)

或者像这样对值进行硬编码:

models.CharField(
    choices=[("V1", "V1"), ("V2", "V2")],
)
python django postgresql django-rest-framework
1个回答
0
投票

对值进行硬编码是更好的选择,因为这样迁移是一个独立的脚本,并且没有要导入的库依赖项。

© www.soinside.com 2019 - 2024. All rights reserved.