Как сделать так, чтобы значения поля ModelChoiceField показывали на странице фактические значения, а не числа?
В моей форме (categories
) есть поле (NewListing
), которое должно иметь 4 значения, которые могут быть выбраны в форме на одной из моих страниц. Однако, когда я хочу показать, какое значение было выбрано, я получаю число вместо значения.
Значения следующие:
- Новый
- Отремонтированный
- Открытый
- Подержанные
Таким образом, если ранее было выбрано значение New
, то при отображении этого значения на другой странице оно будет показано как 1
вместо New
.
Как это исправить?
models.py:
class Listing(models.Model):
...
condition = models.CharField(max_length=20)
forms.py:
condition_choices = (
(1, 'New'),
(2, 'Refurbished'),
(3, 'Opened'),
(4, 'Used'),
)
class NewListing(forms.Form):
...
condition = forms.ChoiceField(choices=condition_choices, widget=forms.Select(attrs={
'class': 'condition',
}))
html: (не имеет отношения к делу, но показывает, где он будет использоваться - он выбран на другой странице, хотя - это работает нормально)
<div class="condition">
<p> Condition: <strong> {{ listing.condition }} </strong></p>
</div>
Замените элементы в кортеже на дружественные человеку значения.
CONDITION_CHOICES = [
('NEW', 'New'),
('REF', 'Refurbished'),
('OPE', 'Opened'),
('USE', 'Used'),
]