显示所选项目,而不是数字

时间:2012-03-22 20:26:06

标签: python html django django-forms django-templates

Django python问题:选择下拉菜单返回项目的数值。我无法弄清楚如何获取它的文本值。

Models.py

profile_types = (('0', "Yadda"), ('1', "Frank and beans"), ('2', "Type"), ('3', "Placeholder"),\
                ('4', "Another"), ('5', "And another"), ('6', "aaand another"),\
                 ('7', "Another"), ('8', "Last Type"))

class Profile(models.Model):
     user = models.ForeignKey(User, null=True, unique=True)
     profile_types = models.CharField(max_length=2, choices=profile_types)

Forms.py

class EditProfileForm(forms.Form):
    profile_types = (('0', "Yadda"), ('1', "Frank and beans"), ('2', "Type"), ('3', "Placeholder"),\
                    ('4', "Another"), ('5', "And another"), ('6', "aaand another"),\
                     ('7', "Another"), ('8', "Last Type"))
    name = forms.CharField(max_length=100, required=False, widget=forms.TextInput(attrs={'class':'input-text'}) )
    about = forms.CharField(widget=forms.Textarea(attrs={'class':'input-text'}), required=False)
    org_name = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'class':'input-text'}))
    org_type = forms.CharField(max_length=8, widget=forms.Select(choices=choices))
    profile_type = forms.CharField(max_length=4, widget=forms.Select(choices=choices))

模板:

<span>{{ profile.profile_type }}</span>

返回

  1  <-- (I'm trying to display "Frank and beans") -->

1 个答案:

答案 0 :(得分:2)

为此目的,您的模型有一个方法get_profile_type_displayhttps://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.Model.get_FOO_display

顺便提一下,如果您还想要,也可以使用dict(profile_types)[b for a,b in profile_types if a == test_value]来搜索选项,其中test_value是您要查找的数值。