models.py:
class Person(models.Model):
name = models.CharField(max_length=200)
CATEGORY_CHOICES = (
('M', 'Male'),
('F', 'Female'),
)
gender = models.CharField(max_length=200, choices=CATEGORY_CHOICES)
to_be_listed = models.BooleanField(default=True)
description = models.CharField(max_length=20000, blank=True)
views.py:
def index(request):
latest_person_list2 = Person.objects.filter(to_be_listed=True)
return object_list(request, template_name='polls/schol.html',
queryset=latest_person_list, paginate_by=5)
在模板上,当我调用时person.gender
,我得到'M'
or 'F'
而不是'Male'
or 'Female'
。
如何显示值('Male'
或'Female'
)而不是代码('M'
/ 'F'
)?
4
Django打印选择值的
—
Ignacio Vazquez-Abrams,2010年
我尝试了这种方法,在我的模板中使用的是:{%为object_list%中的人}一些html {{person.get_gender_display()}} html {%endfor%}我收到以下错误:异常值:无法解析其余部分:来自“ person.get_gender_display()”的“()”
—
Shankze 2010年
不好意思,我不应该在person.get_gender_display之后包括'()'。现在正在工作。谢谢。
—
Shankze 2010年
请稍加评论,由于性别只会是M或F(长度为1个字符),因此将charfield的最大长度设置为毫无意义
—
Alejandro Garcia
200
。使用max_lenght=1
足够了,它将使您的网站更高效,并且将确保您不会有错误的数据。:)