마이허니트립 | 예약상태 지정에 Enum사용하기

2022. 8. 7. 13:00·wecode
반응형

 

예약-예약상태 데이터베이스 모델링

 

+----+------------------+
| id | name             |
+----+------------------+
|  1 | An upcoming trip |
|  2 | Last trip        |
|  3 | Canceled trip    |
+----+------------------+

 

예약상태 데이터베이스는 이렇게 들어가있고 예약을 하면 예약상태를 1번 예정된 여행으로 지정을 해야 한다.

 

booking = Booking.objects.create(
                ...
                booking_status = BookingStatus.objects.get(id = 1),
                ...
            )

 

그래서 이렇게 작성을 했는데 id=1을 해버리면 데이터에 뭐가 들어있는지 아는 사람만 알아볼 수 있는 코드가 된다.

그래서 id=1 이 An upcoming trip이라는 것을 알려주기 위해 Enum을 사용했다.

 

 

Enum 사용하기

Enum은 상수와 이름을 연결할 때 사용할 수 있다.

 

사용하기 위해 import를 하고

booking_statuses의 id와 name을 연결해서 사용하기 위해서 정의를 했다.

 

from enum import Enum

class BookingStatusEnum(Enum):
	UPCOMING = 1
	LAST     = 2
	CANCELED = 3

 

id값을 지정할 때 앞의 이름을 사용하면서 실제 값은 숫자로 넣어야 하는데

<Enum클래스명>.<항목이름>.<value>를 사용하면 된다.

 

booking = Booking.objects.create(
                ...
                booking_status = BookingStatus.objects.get(id = BookingStatusEnum.UPCOMING.value),
                ...
            )

 

이렇게 작성하면 id=1과 똑같이 작동하면서

booking status 1번이 어떤 데이터인지 모르는 사람도 알아볼 수 있는 코드가 되었다!

 

 

 

 

참고

https://docs.python.org/3/library/enum.html

반응형
저작자표시 비영리 변경금지 (새창열림)

'wecode' 카테고리의 다른 글

마이허니트립 | 예약 api transaction.atomic() 적용  (0) 2022.08.17
마이허니트립 | 예약페이지 승객정보 bulk_create  (0) 2022.08.14
마이허니트립 | 카카오 로그인 api : 카카오 인가코드로 토큰발급받기  (0) 2022.08.05
마이허니트립 | 카카오 로그인 api : 카카오 토큰으로 유저정보 받아서 회원가입, 로그인 시키기  (0) 2022.08.04
마이허니트립 | 데이터베이스 모델링  (0) 2022.08.04
'wecode' 카테고리의 다른 글
  • 마이허니트립 | 예약 api transaction.atomic() 적용
  • 마이허니트립 | 예약페이지 승객정보 bulk_create
  • 마이허니트립 | 카카오 로그인 api : 카카오 인가코드로 토큰발급받기
  • 마이허니트립 | 카카오 로그인 api : 카카오 토큰으로 유저정보 받아서 회원가입, 로그인 시키기
이라후
이라후
  • 이라후
    화이팅
    이라후
  • 전체
    오늘
    어제
    • 분류 전체보기 (133)
      • TIL (23)
      • 기타 (26)
      • Python (14)
      • Django (10)
      • JavaScript (8)
      • git & GitHub (8)
      • Web (10)
      • Go (3)
      • wecode (31)
  • 반응형
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
이라후
마이허니트립 | 예약상태 지정에 Enum사용하기
상단으로

티스토리툴바