반응형
장고: 선택지 값 표시
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'
)?
올바른 방향으로 나아가고 있는 것 같습니다.당신이 원하는 것은 다음과 같습니다.
템플릿에는 다음 항목이 포함되지 않습니다.()
방법이라는 이름으로다음을 수행합니다.
{{ person.get_gender_display }}
선택지가 설정된 모든 필드에 대해 오브젝트에는 get_이 있습니다.FOO_display() 메서드. FOO는 필드 이름입니다.이 메서드는 필드의 "사람이 읽을 수 있는" 값을 반환합니다.
뷰 내
person = Person.objects.filter(to_be_listed=True)
context['gender'] = person.get_gender_display()
템플릿 내
{{ person.get_gender_display }}
다른 사람들은 '취득'이 있다고 지적했습니다.FOO_display 방식이 필요합니다.이것을 사용하고 있습니다.
def get_type(self):
return [i[1] for i in Item._meta.get_field('type').choices if i[0] == self.type][0]
항목 유형과 일치하는 항목을 찾을 때까지 특정 항목이 가진 모든 선택 항목에서 반복됩니다.
언급URL : https://stackoverflow.com/questions/4320679/django-display-choice-value
반응형
'programing' 카테고리의 다른 글
iframe 액션에서 상위 창 리디렉션 (0) | 2023.01.22 |
---|---|
Javascript를 사용하여 현재 도메인 이름 가져오기(경로 등이 아님) (0) | 2023.01.22 |
Windows 서버의 Maria DB 데이터 변경 (0) | 2023.01.22 |
Optimize를 사용한 Mariadb 테이블 조각 모음 (0) | 2023.01.22 |
Netbeans(PHP)에서의 변수형 힌트 (0) | 2023.01.22 |