2010-01-29 5 views
2

나는 이것이 올바른 방법이라고 생각한다. 나는 등, 코드의 어느 부분이 두 번째, 첫 번째 실행하는 궁금하네요Django : Django의 스택 순서는 무엇입니까?

내 가정이 될 것입니다,하지만 나도 몰라 :

  1. 요청
  2. 미들웨어
  3. 보기
  4. 모델
  5. 미들웨어
  6. 응답

요청하는 이유는 요청 변수를 기반으로하는 모델에서 dynamicall이 발생할 수 있기를 원하기 때문에 장치에 자동으로 최선의 방법을 시도하고 있습니다. 통해 전달할 필요없이 모델 계층에 요청을 추가하십시오. 보기. 어떤 종류의 미들웨어 환상적인기구가 어떻게 든 그것을 할 수있는 방법이라고 생각할 것입니다.

+0

좀 더 구체적으로 기재 할 수 있습니까? "뷰를 거치지 않고 모델 레이어에 요청을 추가하는 것"은 나에게 의미가 없습니다. 모델과 의사 소통하려고하는 요청에 어떤 내용이 있습니까? –

+0

나는 현재 request.user가 models.py에 있는지 알기 위해 사용자 기반의 필터링을 위해 사용자 지정 관리자를 사용할 수 있습니다. – orokusaki

답변

4

명확한 설명에 답하려면 여기에서 얻을 수 없습니다.

models.py는 모델 클래스를 두는 파일 일뿐입니다. 모델 클래스는 모든 곳에서 액세스하는 클래스입니다. request 개체가 작업중인 함수로 전달되지 않는 한 은 존재하지 않으며이며 request.user은 없습니다. 모델은 request이있는 컨텍스트 내 어디에서나 사용할 수 있습니다.

요청 개체를 사용해야하는 경우 매개 변수로 전달하십시오. 그리고 그것이 의미가 없다면, 당신은 당신의 모델을 잘못 사용하고 있습니다.

1

모델과 템플릿 모두 스택에 포함되지 않습니다. 보기 작업.

+0

한 글자 씩 답을 바꿔 투표 할 수있게하겠습니다. 그것은 내가 그것을 투표 할 수 없다고 말한다. – orokusaki

1

나는이 생각보다 같은 :

  1. 요청
  2. 미들웨어 (URL 매퍼) (뷰에 의해 요청 된 경우)
    1. 모델
    2. 보기
    3. 템플릿 (요청할 경우 보기)
  3. 미들웨어 (응답 결과)