안녕하세요. 현재 하나의 Django 프로젝트에서 API 부분과 Admin Dashbo

 
Yuk Seungchan

안녕하세요.

현재 하나의 Django 프로젝트에서 API 부분과 Admin Dashboard를 만들어서 쓰고 있는데 API부분과 Dashboard부분을 프로젝트로 나누고 싶은데 대부분의 Model을 공유하고 있습니다.

두개의 프로젝트에서 하나의 DB를 사용해서 Model을 공유할 수 있는 방법이 있나요?

  • ChulHui Lee

    헉 나도 이문제로 고민중

    ChulHui Lee

    sqlalchemy에서는 mapper만 설정해주면 가능하긴한데 장고는 잘 모르겠다

    ChulHui Lee

    git으로 모델부분만 부분적으로 같은 레파지터리에 넣어서 쓰는건 어때

    Yuk Seungchan

    이철희 나는 Django에서 지원하는게 있는지 궁금했음

    Thomas Hyunsik Kim

    settings에서 같은 db로 설정하고 모델 임포트는 relative path로 해 주시면 되지 않을까 생각합니다. 어차피 프로젝트 별로 나뉘는 거나 app 별로 나뉘는거나 큰 차이가 없다고 생각되네요.

    Yuk Seungchan

    Thomas Hyunsik Kim 지금 작성은 그렇게 하고 있는데, 다른 방법이 있는지도 궁금합니다~

    Chinseok Lee

    하나의 프로젝트에서 settings 만 분리해서 쓸 수도 있겠죠.

    박영록

    프로젝트 하나에 models를 두고 python path를 공유하는 곳에 설치해서 import해서 쓰면 되죠. setuptools로 패키징해서 설치해버려도 되구요.

    하지만, 프로젝트를 나누는 것은 비추입니다. 한 프로젝트로 관리될 때의 수많은 장점에 비해 프로젝트가 나뉠 때의 장점은 너무 작습니다. django app 단위로 나누는 것도 비추인데 프로젝트 단위까지 나누는 건 더 좋지 않다고 봐요.

    Kenial Lee

    박영록@ 그러면 보통 app에서 모델이 끝도 없이 나올 때(…)에도 models.py 파일에서 모든 모델을 관리하시나요? 아니면 여러 개의 모델 파일을 만드시나요? 저는 지금 app을 쪼갤 때 기능보다는 모델의 성격에 따라서 쪼개는 편인데 확신이 없기도 하고; 뭐 그렇습니다아 …

    박영록

    @이수겸 모델 파일을 쪼개는 게 아무래도 쉽죠. 저는 코드 수정 없이 그대로 떼서 다른 프로젝트에 붙일 수 있을 때만 app을 분리합니다. auth 같은 게 좋은 예죠.

Advertisements