2015-09-28 59 views
0

在管理,我有一个list_display与选择字段。即使存在数据,选项也会显示为无。Django 1.8 list_display显示(无)的选择域

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) 

回答

0

看起来你不是要设置领域,一些期待默认值在那里。你可能想要的是:

status = models.IntegerField(db_column='Status', choices=xSTATUS, default=1) 

既然你设置default,就可以摆脱blank=Truenull=True

而且,使用choices很大的好处之一就是做这样的事情:

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

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

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

这样,您就不必使用/想想整数了,而且总是可以通过Status.FIELD访问的事情。

+0

嗨,谢谢你的回复,但是这里有数据。如果我进入表单视图,我可以看到数据。它只是不在display_list中。任何想法为什么不呢? – mykl

0

我想通了......在MySQL中,该字段被定义为varchar。改为整数,现在它显示正确。