Django
장고, ChoiceField 구현
수알치
2021. 11. 13. 17:59
장고, ChoiceField 구현
정리. 수알치 오상문
장고 DB model에 ChoiceField는 없으며, 대신 CharField에 choice 옵션을 추가하여 구현합니다.
예를 들어 상품 카테고리가 전체, 성인, 아이들, 아기라고 나뉠 때 CATEGORY_CHOICE라는 튜플형 튜플을 만들고 CharField의 choices 옵션에 지정합니다. 튜플의 튜플 앞 값은 DB에 저장되는 값이고 뒷 값은 폼이나 템플릿 등에서 출력하는 값입니다.
# models.py
from django.db import models
class Product(models.Model):
# choice 옵션에 지정할 값
CATEGORY_CHOICE = (
('EV', 'Everyone'),
('AD', 'Adult'),
('CH', 'Children'),
('BA', 'Baby'),
)
# 상품 카테고리 필드
category = models.CharField(max_length=2, choices=CATEGORY_CHOICE)
장고 template(HTML 파일)에서 값을 출력할 수 있습니다.
{{ product.category }}
--> EV
축약 형태 값 대신에 튜플 값의 두 번째 내용을 출력하려면 get_필드명_display를 사용합니다.
{{ product.get_category_display }}
--> Everyone
참고:
반응형