Показать выбранный элемент, а не номер - PullRequest
0 голосов
/ 23 марта 2012

Проблема с 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 Ответ

2 голосов
/ 23 марта 2012

Ваша модель имеет метод get_profile_type_display для этой цели: https://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 - это числовое значение, которое вы ищете.

...