【问题标题】:Display field choice as part of model string name将字段选择显示为模型字符串名称的一部分
【发布时间】:2012-02-16 06:01:06
【问题描述】:

来自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,该怎么办?

【问题讨论】:

    标签: django


    【解决方案1】:

    使用get_gender_display():

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

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

    【讨论】:

    • 你能解释一下unicode和str的区别吗?我应该同时定义它们吗?
    • 在模板中,您可以使用:{{ variable.get_fieldname_display }}HTH
    • 在 Python 3 中,您应该定义 __str__ 而不是 __unicode__
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-06
    • 2020-11-25
    • 2012-12-13
    • 1970-01-01
    • 2018-06-24
    • 1970-01-01
    相关资源
    最近更新 更多