My Image

Django 포스팅

[Django] CharField에 choices를 사용해서 목록 옵션 만들기

Doyeon0430 | 2023년 06월 03일

Django 이미지

이번시간에는 CharField에 choices로 하위 목록을 나눠지게 만들면서

옵션을 선택할 수 있게 모델과 템플릿 코드를 설정해보겠습니다.

저는 영화 블로그라서 ['상업영화', '드라마', 'OTT 오리지널'] 3개를 만들어봤습니다.

아래 공식 문서를 참고하면 더 쉽게 이해하실 수 있습니다.

주소 : 장고 공식 문서

 

  1. Django CharField 사용 - models.py 설정
  2. Django CharField 사용 - templates 설정
  3. Django CharField 사용 - 결과화면

 

 

1. Django CharField 사용 - models.py 설정

장고는 model에서 필드 선택지를 나눌 수 있는 매개변수를 제공하고 있습니다.

 

1. models.py

class Movie(models.Model):
    #해당 필드 작성하기
    genre = models.CharField(max_length=20, choices=[('상업영화', '상업영화'), ('OTT 오리지널', 'OTT 오리지널'), ('드라마','드라마')])

위의 코드는 genre의 필드를 설정해서 CharField를 생성해줍니다.

choices에는 '(값, 표시할_라벨)'의 튜플 형식으로 값을 입력했습니다.

그래서 ('상업영화','상업영화')와 같은 값을 정의하고 3개의 선택지를 생성해봤습니다.

 

 

2. Django CharField 사용 - templates 설정

model에서 필드를 설정해봤으니 직접 html코드로 불러오는 작업을 해보겠습니다.

 

1. HTML 코드

<div>
    <div>
        {% for item in movie_content %}
        {% if item.genre == '상업영화' %}
           #해당 내용 작성하기
        {% endif %}
        {% endfor %}
    </div>
</div>

for문으로 값을 불러올 때 item의 genre가 상업영화인지 확인하는 if 조건문을 작성해야합니다.

{% if item.genre == '상업영화' %}를 사용하면 상업영화 값만 들어오게 만들 수 있습니다.

마지막으로 {% endif %}로 조건문을 닫으면 끝납니다.

결과를 확인하러 가보겠습니다.

 

 

3. Django CharField 사용 - 결과화면

디장고 화면 이미지

정상적으로 모델과 템플릿 코드가 반영된 걸 볼 수 있습니다.

글을 마치며 장고에서 제공하는 매개변수를 사용해 CharField에 목록 값을 설정해보고

templates에서 조건문을 이용해 해당 값만 나오게 설정해봤습니다.

댓글 (0)

    댓글이 없습니다.

간편 댓글 작성

My Image My Image My Image My Image