在我的模型中,我按照以下方式定义选择:
LANG_CHOICES = (
("Englisch", (
(u"en-gb", u"England"),
(u"en-us", u"United States of America"),
), )
该字段定义为:
lang_source = models.CharField(max_length=5, choices=LANG_CHOICES, default="en-gb")
当然,在我的模板中,我想要显示人类可读的值,即
{{ object.lang_source }}
不应打印“en-gb”(或相应的值),而应打印“England”。
实现这一目标最优雅的方法是什么? (除了在视图中从模型导入dict并手动翻译值。)
答案 0 :(得分:6)
尝试:
object.get_lang__source_display()
文档:
答案 1 :(得分:1)
http://www.djangoproject.com/documentation/models/choices/
{{ object.get_lang_source_display }}
应该有用。
答案 2 :(得分:0)
禁止在定义字段名时连续使用两个下划线,因为django过滤QuerySets的方式:http://docs.djangoproject.com/en/dev/topics/db/models/#field-name-restrictions