Python Django 1.8 choicefield的列表显示(无)
在admin中,我有一个带有choicefield的列表显示。即使有数据,choicefiled也显示为NonePython 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
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。已更改为整数,现在显示正确。您好,感谢您的回复,但字段中有数据。如果我进入表单视图,我可以看到数据。它只是不在显示列表中。有什么想法吗?