MVC 프레임 워크의 핵심은 디자인 (템플릿)을 로직 (컨트롤러)과 분리하는 것입니다. 그러나 템플릿 언어는 제한된 수준의 "디자인 논리"를 발생시킬 수 있습니다. 여기에는 기본적인 if 문, 루프, 필터링 등이 포함됩니다.컨트롤러 논리 및 템플릿 논리에서 페이지 매김을 사용하여 선을 그립니다.
모든 목록이나 QuerySet을 가져 와서 "페이지 설정"할 수있는 장고 템플릿 태그를 만들었습니다. 지정된 페이지 크기를 기반으로 목록을 페이지로 분할 한 다음 페이지를 컨텍스트에 추가합니다.
{% pagify articles by 20 as pages %}
난 후 별도의 페이지를 반복하고 나는 그것을 필요로 어디든지 페이지의 좋은 목록을 생성합니다 포함 호출 할 수 있습니다 : 다음과 같이 사용이다.
이것은 내가 컨텍스트에서 임의의 목록을 페이지 할 수있게하기 때문에 최적의 방법이라고 생각됩니다. 페이징 된 결과를 반환하기 위해 컨트롤러에 의존 할 필요가 없었습니다. 그러나 동료는 이것이 템플릿에 너무 많은 논리처럼 보인다고 주장했다. 페이지가 페이징 없이도 여전히 작동하고 페이지 크기를 결정하는 것이 템플릿 책임처럼 느껴지기 때문에 이것이 여전히 디자인 기반 논리 영역에 해당한다고 생각했습니다.
내 질문에 템플릿에 너무 많은 논리가 있습니까? 아니면 이것을 처리 할 수있는 깨끗한 방법입니까?
동료는 꽤 똑똑한 사람처럼 들립니다. : P –