Python Django 1.8 choicefield的列表显示(无)

Python Django 1.8 choicefield的列表显示(无),python,django,Python,Django,在admin中,我有一个带有choicefield的列表显示。即使有数据,choicefiled也显示为None class Evaluation(models.Model): xSTATUS = ((1, "PENDING"),(2, "CONFIRMED")) candidate = models.ForeignKey(Candidate) evaluationdate = models.DateTimeField(db_column='EvaluationDate

在admin中,我有一个带有choicefield的列表显示。即使有数据,choicefiled也显示为None

class Evaluation(models.Model):
    xSTATUS = ((1, "PENDING"),(2, "CONFIRMED"))

    candidate = models.ForeignKey(Candidate)
    evaluationdate = models.DateTimeField(db_column='EvaluationDate', blank=True, null=True)
    user = models.ForeignKey(Evaluator, verbose_name="Evaluator",)
    status = models.IntegerField(db_column='Status', choices=xSTATUS, blank=True, null=True)
我的admin.py如下所示:

class EvaluatorEvaluationAdmin(EvaluationAdmin):
    ...
    list_display = ('candidate', 'evaluationdate', 'user', 'status', 'bankno')
下面是列表的内容:

Candidate       Evaluationdate        Evaluator Status
Angel Badabo    May 19, 2015, 10 a.m.   mykl    (None)
Angel Badabo    Sept. 1, 2015, 4 p.m.   mykl    (None)

看起来您没有设置该字段,并且希望有一些默认值。您可能想要的是:

status = models.IntegerField(db_column='Status', choices=xSTATUS, default=1)
由于您正在设置
default
,因此可以去掉
blank=True
null=True

此外,使用
选项的一大好处是可以执行以下操作:

class Status(object):
    PENDING = 1
    CONFIRMED = 2

    CHOICES = (
        (PENDING, 'Pending'),
        (CONFIRMED, 'Confirmed')
    )

class Evaluation(models.Model):
    ...
    status = models.IntegerField(choices=Status.CHOICES)

这样,您就不必再使用/考虑整数,并且可以始终通过
状态来访问内容。FIELD

我发现了这一点……在MySQL中,该字段被定义为varchar。已更改为整数,现在显示正确。

您好,感谢您的回复,但字段中有数据。如果我进入表单视图,我可以看到数据。它只是不在显示列表中。有什么想法吗?