Django의 경우 1 가지 작업 만 수행하고 1 가지 작업을 수행하는 것이 가장 좋은 방법입니다. 따라서 다른 프로젝트에 "플러그 앤 플레이"할 수 있습니다.Django Apps for Inter-related models을 관리
나는 라이브러리 응용 프로그램이 있고 3 개의 응용 프로그램이 있다고 가정합니다. book
, member
및 loan
. 그들 각각은 그들 자신의 모델을 가지고있다. 그래서에서
이 loan
에서 forms.py
말,이 같은 일을 수행해야합니다
from book.models import Book
from member.models import Model
from .models import Loan
#Other key imports
class CreateLoanForm(forms.Form):
# Some fields
def save(self):
# Retrieve fields
selected_book = self.cleaned_data.get('selected_book')
selected_member = self.cleaned_data.get('selected_member')
new_loan = Loan(
book=Book.objects.get(id=selected_book),
member=Member.objects.get(id=selected_member),
date_start=self.cleaned_data.get('date_start'),
date_end=self.cleaned_data.get('date_end')
)
내 질문
은 다음과 같습니다- 위
from book.models ...
플러그인 할 수있는 능력을 위반하지 않습니다 앱을 재생할까요? - 이 모델을 가져 오는 더 좋은 방법이 있습니까? 그렇게 할 때 모범 사례를 위반합니까?
플러그 형 설정은 사실 모델이 실제로는 플러그 형 (사용자 모델과 같은)이어야하는 경우가 많습니다 (이는 소수의 경우 임). 인앱 종속성은 현실적으로 불가능하며, 종속성이없는 경우 모델을 가져 와서 오류가 발생하는 것이 좋습니다. – knbk
@knbk, "일반적인"관행이 아니라는 점에서 정확합니다. 그에 따라 그에 대한 답변도 업데이트되었습니다. 나는 나머지 의견에 동의하지 않지만,이 방법을/다시 주장하는 것은 대답의 범위에 속하지 않습니다. –