我有一个 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")],
)
对值进行硬编码是更好的选择,因为这样迁移是一个独立的脚本,并且没有要导入的库依赖项。