Django enumfield指数超出范围

时间:2015-10-30 20:32:22

标签: python django

我一直试图理解我在模型中定义枚举字段时的错误,但老实说我无法追踪它。我提前就问一个愚蠢的问题道歉,但我很感激你的帮助。

这是我的模特:

class StageType(enum.Enum):
    Setup = 0
    DVMStart = 1
    Provision = 2
    FWFlash = 3
    BIOSFlash = 4
    PkgLoad = 5

class Stage(models.Model):
    name = models.CharField(max_length=200)
    sttype = enum.EnumField(StageType)
    def __unicode__(self):              #  __str__ on Python 3
        return self.name

当我运行mkmigrations时,我收到以下错误:

  

文件“/Volumes/RHCHD/rhc/code/seth/console/models.py”,第24行,在       class Stage(models.Model):     文件“/Volumes/RHCHD/rhc/code/seth/console/models.py”,第26行,在舞台       sttype = enum.EnumField(StageType)     在 init 中输入文件“/Volumes/RHCHD/rhc/seth/lib/python2.7/site-packages/django_enumfield/db/fields.py”,第17行       kwargs ['default'] = enum.default()     文件“/Volumes/RHCHD/rhc/seth/lib/python2.7/site-packages/django_enumfield/enum.py”,第87行,默认情况下       return cls.choices()[0] [0]   IndexError:列表索引超出范围

有人能指出这个错误吗?

1 个答案:

答案 0 :(得分:0)

叹息 - 终于想通了。对于追随我的人来看,问题是enum中定义的标签必须表示为所有CAPS。我无法在任何地方找到这些文件,所以希望这对其他人有帮助。