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'
)?
4
можливий дублікат значення вибору друку Django
—
Ігнасіо Васкес-Абрамс
Я спробував цей метод. У своєму шаблоні я використовую: {% for person in object_list%} деякий html {{person.get_gender_display ()}} html {% endfor%} Я отримую таку помилку: Значення винятку: Не вдалося проаналізувати решта: '()' від 'person.get_gender_display ()'
—
Shankze
Мій поганий, я не повинен був включати "()" після person.get_gender_display. Його працює зараз. Дякую.
—
Шенкзе
Лише невеликий коментар, оскільки стать буде лише M або F (довжина 1 символу), не має сенсу встановлювати максимальну довжину charfield до
—
Алехандро Гарсія
200
. З max_lenght=1
цього достатньо, зробить ваш сайт більш ефективним, і ви переконаєтесь, що у вас не буде помилкових даних. :)
Можливий дублікат шаблонів Джанго: багатослівна версія вибору
—
Ciro Santilli 郝海东 冠状 病 六四 事件