"ValidatioError: Value ... is not a valid choice" in Django even with a valid choice

"ValidatioError: Value ... is not a valid choice" in Django even with a valid choice

我有一个带有 object_type 字段的模型,其中选项应该是数字,人类可读的字符串如下所示:

OBJECT_TYPES = (
    (0, "analog-input"),
    (1, "analog-output"),
    (2, "analog-value")
)

class MyModel(models.Model):
    object_type = models.CharField(
        max_length=20,
        choices=OBJECT_TYPES,
        blank=True,
        null=True
    )

但是,当我尝试创建一个对象并为 object_type 分配一个整数值时,我得到一个 ValidationErrorobject_type 不是一个有效的选择,我不能了解如何正确配置它。我试过 CharFieldTextFieldIntegerField

obj = MyModel.objects.create(object_type=2)
obj.full_clean()

ValidationError: {'object_type': ["Value '2' is not a valid choice."]}

因为这是一个 CharField,键应该是 strings,所以 '0',而不是 0:

OBJECT_TYPES = (
    (<strong>'</strong>0<strong>'</strong>, "analog-input"),
    (<strong>'</strong>1<strong>'</strong>, "analog-output"),
    (<strong>'</strong>2<strong>'</strong>, "analog-value")
)

另一种方法是使用 IntegerField:

OBJECT_TYPES = (
    (0, "analog-input"),
    (1, "analog-output"),
    (2, "analog-value")
)

class MyModel(models.Model):
    object_type = models.<strong>IntegerField(</strong>
        choices=OBJECT_TYPES,
        blank=True,
        null=True
    <strong>)</strong>