Django python problem: The select drop down returns the numeric value of the item. I can’t figure out how to get the text value of it.
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))
Template:
<span>{{ profile.profile_type }}</span>
Which returns
1 <-- (I'm trying to display "Frank and beans") -->
Your model has a method
get_profile_type_displayfor this very purpose: https://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.Model.get_FOO_displayIncidentally, if you wanted you could also search through the choices, either using
dict(profile_types)or[b for a,b in profile_types if a == test_value]wheretest_valueis the numeric value you are looking for.