Django:显示选择值 [英] Django: Display Choice Value

查看:158
本文介绍了Django:显示选择值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

型号:

  class Person(models.Model):
name = models.CharField(max_length = 200 )
CATEGORY_CHOICES =(
('M','Male'),
('F','女'),

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 (请求):
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)$ b $在模板上,当我打电话给person.gender时,我得到'M'或'F',而不是'男' '或'女'。
如何显示值('Male'或'Female')而不是代码(M / F)?

解决方案

您似乎正处于正确的轨道 - get_FOO_display()当然是你想要的:



在模板中,不要在方法的名称中包含()。执行以下操作:

  {{person.get_gender_display}} 


Model:

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)

On the template, when I call person.gender, I get 'M' or 'F' instead of 'Male' or 'Female'. How to display the value ('Male' or 'Female') instead of the code(M/F)?

解决方案

It looks like you were on the right track - get_FOO_display() is most certainly what you want:

In templates, you don't include () in the name of a method. Do the following:

  {{ person.get_gender_display }}

这篇关于Django:显示选择值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆