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)
Şablonda, aradığımda person.gender
, 'M'
veya 'F'
yerine 'Male'
veya alırım 'Female'
.
Kod ( / ) yerine değer ( 'Male'
veya 'Female'
) nasıl görüntülenir ?'M'
'F'
4
Django baskı seçeneklerinin
—
Ignacio Vazquez-Abrams
Bu yöntemi denedim, şablonumda kullanıyorum: {% object_list% içindeki kişi için%} bazı html {{person.get_gender_display ()}} html {% endfor%} Aşağıdaki hatayı alıyorum: İstisna Değeri: Ayrıştırılamadı kalan: '()' from 'person.get_gender_display ()'
—
Shankze
Benim Kötü, person.get_gender_display sonra '()' dahil olmamalıydı. Şuan çalışıyor. Teşekkürler.
—
Shankze
Sadece küçük bir yorum, cinsiyet sadece M veya F (1 karakter uzunluğunda) olacağından, charfield'ın maksimum uzunluğunu ayarlamak mantıklı değildir
—
Alejandro Garcia
200
. İle max_lenght=1
yeterli, sitenizi daha verimli hale getirecek ve yanlış verilere sahip olmayacaksınız sağlayacaktır. :)