将字段选择显示为模型字符串名称的一部分

时间:2012-01-22 15:46:00

标签: django

来自django documentation,如果我有

GENDER_CHOICES = (
    ('M', 'Male'),
    ('F', 'Female'),
)

class Person(models.Model):
    name = models.CharField(max_length=20)
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES)

    def __str__(self):
            return "%s [%s]" % (self.name, self.gender)

如果我希望__str定义显示为self.gender而不是M或F的全名(男性或女性),该怎么办?

1 个答案:

答案 0 :(得分:30)

使用get_gender_display()

return u"%s [%s]" % (self.name, self.get_gender_display())

注意,如果您不使用Python 3+,则应该定义__unicode__而不是__str__