models.py:
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)
На шаблоне, когда я звоню person.gender
, я получаю 'M'
или 'F'
вместо 'Male'
или 'Female'
.
Как отобразить значение ( 'Male'
или 'Female'
) вместо кода ( 'M'
/ 'F'
)?
200
. С этимmax_lenght=1
достаточно, чтобы сделать ваш сайт более эффективным, и вы убедитесь, что у вас не будет неправильных данных. :)Ответы:
Похоже, вы были на правильном пути -
get_FOO_display()
это, безусловно, то, что вы хотите:В шаблонах вы не включаете
()
в название метода. Сделайте следующее:источник
{{ person.get_gender_display() }}
В представлениях
В шаблоне
Документация get_FOO_display ()
источник
Другие отмечают, что вам нужен метод get_FOO_display. Я использую это:
который перебирает все варианты, которые имеет конкретный элемент, пока не найдет тот, который соответствует типу элементов
источник