이 질문에 대한 답을 얻기 위해이 게시물을 모두 읽을 필요는 없습니다.이 게시물의 나머지 부분은 질문이 나오는 컨텍스트 일 뿐이지 만 일반적인 질문은 :Django에서 여러 모델에 걸쳐 bussiness 논리를 두는 곳
장고에 여러 모델에 걸쳐 bussiness 로직을 넣을 곳은 어디입니까 ??
일부 posibilites :
- 일부보기? 모델/형태의
- 저장 방법 (나는 그렇게 생각하지 않습니다, 그것은, 관리자 및 여러 뷰에서 DRY을 일해야한다)? (어떻게?)
- 청소 Methos의를 모델/형태를? (어떻게?)
- 논리를 분할하고 신호를 사용 하시겠습니까? (어떻게?)
- 기타?
는 문맥 :
- 부서 : : 5 월 : (위험, 금융, IT, ...)
- 직원 회사의 다른 부서를 참조
나는이 모델을 가지고 일정 기간 동안 한 부서에만 속한 다음 다른 부서로 변경됩니다.
- 프로젝트 : 각 부서는 여러 개의 프로젝트를 가질 수 있으며 프로젝트는 여러 개의 출발점에 속할 수 있습니다.
- 회원 : join_date 및 leave_date 같은 다른 필드를 포함 직원 및 부서 ManyToMany 관계 사이의 중간 테이블, 중요한 필드는 FK 있습니다 : 부서, FK : 직원을
- 역사 : 알려 회원 및 프로젝트의 중간 테이블에있는 직원 그가 어떤 부서에서 일하기를 원했을 때, 중요한 분야는 다음과 같습니다 : Membership, fk : Project.
- CurrentProjects : 부서와 현재 작업중인 프로젝트를 연결하는 테이블입니다.
supos 저는 장고 관리자이고 위험 부서 부서에 있으며 위험 요소는 현재 Proyect1과 Project2가 지정되어 있습니다. 나는 "Jhon 스미스"(예를 들어, 부서에서 인라인 양식을 사용하여) 새로운 직원을 추가하고 저장 버튼을 누를 때, 나는 모델의 역사는이 정보로 업데이트됩니다 원하는 :
Membership table (only important fields): pk Department Employee join_date leave_date 20 Risk Jhon Smith xxxx xxxx History Table (only important fields): Membership Project 20 Project1 20 project2
내 말은 때 새를 직원이 새 부서로 지정되면 해당 부서의 실제 프로젝트가 모두 테이블 히스토리의 해당 회원 부서로 지정되어야합니다.
이 논리는 장고에 어디에 놓아야할까요? 이 논리가 배수 모델을 포함 볼 수 있듯이, 일부 posibilities은 다음과 같습니다 어떤 관점에서
- (나는 그렇게 생각 돈, 그것은 관리자 interfase에 다른 곳에서 일해야한다)의 깨끗한 방법
- 회원, 부서 또는 직원 모델/서식?
- 회원, 부서 또는 직원 모델/서식의 저장 방법은 무엇입니까?
- 논리를 분할하고 신호와 같은 것을 사용해야합니까? (몇 가지 예?)
- 기타?
- 나는 everithing을 복잡하게 끝났습니다. =)
고려 사항 : 코드가 프로세스의 어느 시점에서든 값 오류를 생성 할 수 있고 사용자/관리자가 제한되지 않은 형태로이 오류를 볼 수 있으면 좋을 것입니다.
고마워요.
신호를 탐색 해 보셨습니까? – jdi
@jdi 주제를 지금 검토 중이지만이 시나리오에서 사용하는 방법에 대한 통찰력이 있습니까? – javier
내 대답보기. 나는 그것에 대해 이야기한다. – jdi