한 앱에 여러 모델 처리

BiteSnail·2023년 11월 16일
0

설문조사라는 기능을 구현하기 위해 survey라는 앱을 만든 후에 모델을 작성하는 중에 하나의 앱에 여러 개의 모델이 존재할 수 있는지에 대한 의문이 생겼습니다.

그래서 이와 관련된 내용을 찾아봤는데, 스택오버플로우에 어떤 형님이 이런 말씀을 남겨 두셨습니다.

One of the key ideas for a reusable application is: Do one thing, and do it well

결국 재사용 가능한 애플리케이션이 되기 위해서는 하나의 일을 잘 해낼 수 있어야 한다는 것인데, 설문조사라는 기능이 하나의 프로세스라고 생각하니 하나의 앱에 여러 개의 모델을 넣어도 괜찮을 것 같습니다.

그런데 굳이 쓰지도 않을 앱을 새로 만들어서 모델을 추가하는 일을 하는 것은 좀 아닌 것 같고, 하나의 앱에 모델들을 여러개 넣는 것이 맞는 것 같습니다.

그래서 각 모델들을 나누어 적용하기 위해 아래와 같이 디렉토리 구조를 변경해주었습니다.
기존 models.py에서 모델들을 하나의 파일로 분리하여 models 디렉토리 안에 해당 모델을 추가하였습니다.

survey
|   __init__.py
|   apps.py
|   admin.py
|   views.py
|   tests.py
+---migrations
+---models
    |   question.py
    |   survey.py
    |   survey_question.py
    \   __init__.py

이후 장고에서 해당 디렉토리를 인식하게 해주기 위해 __init__.py파일에 아래와 같이 추가하였습니다.

from .question import Question
from .survey import Survey
from .survey_question import SurveyQuestion

__all__ = ["SurveyQuestion", "Survey", "Question"]

이후 장고에서 해당 디렉토리를 인식하여 마이그레이션이나 이름 매칭이 정상적으로 이루어지는 것을 확인할 수 있었습니다.

profile
느리지만 조금씩

0개의 댓글