在写博客的例子时,遇到的问题:
有两个涉及到choice field:
Technology = 't'
Book = 'b'
Life = 'l'
Data = 'd'
Tips = 'm'
CATEGORY_CHOICES = (
(Technology, '技术交流'),
(Book, '书籍'),
(Life, '生活'),
(Data, '数据分析'),
(Tips, '短消息'),
)
name = models.CharField(verbose_name='类名', choices=CATEGORY_CHOICES, max_length=1, default='t')
def __str__(self):
return self.name
# 文章状态
STATUS_CHOICES = (
('d', '草稿'),
('p', '已发布'),
)
status = models.CharField(verbose_name='发布状态', choices=STATUS_CHOICES, max_length=1, default='d')
def __str__(self):
return self.title
最后 的结果是:
我知道在模板中是可以通过下面的方式来实现
{{ {{book.get_category_display }}
由于这用的是xadmin的后台,所以用这种方式是不现实的
那么有没有在python代码中实现的方法呢,
方法如下:
def __str__(self):
return self.get_name_display()
同时这里注意到,第二个choice field中的status并没有用这个方法而能正常显示,可能是xadmin已经设计好了,
但是category中的name却没有正常显示可能与它是唯一的字段有关, 有待验证.