2013-08-09 3 views
0

내 메뉴의 설정에 따라 메뉴가 자동으로 변경되어 템플릿에 논리가 복제되지 않습니다. 지금은 경로 이름을 사용하여 request.route_path(name)과 함께 URL을 생성하고 사용자가 현재 페이지가 무엇인지 확인합니다. request.matched_route.name. 내 문제는 이제 다른보기에 대해 다른 권한을 갖고 사용자가 권한이없는 메뉴 항목을 자동으로 숨기려고한다는 것입니다.피라미드에서 동적으로 생성되는 메뉴 만들기

주요 어려움 중 하나는 하나의 경로에 대해 여러 개의보기를 가질 수 있다는 것입니다. 그러나 경로와 관련된보기가 하나뿐이라도 쉽게 검색 할 수있는 방법을 찾을 수 없습니다.

나는 URL Dispatch를 사용하고 있습니다. 이것은 순회만으로 가능할 수있는 것입니까?

답변

0

일반적으로 나는이를 위해 다음과 같은 패턴의 조합을 사용 :

  • 내 전망이 분류
  • 기본 클래스로 구성됩니다 params가 선택적으로 존재 (menu_title, route_name, params)의 목록입니다 기본 _menu있다 dict. 템플릿에서 요청 및 위의 특성에서 메뉴를 빌드하는 menu 속성을 사용할 수 있습니다.
  • 템플릿 항목에서이 항목을 반복하는 함수를 만들면보기가 실제로 허용되면 has_permission과 같은 내용의 체크가 표시됩니다.

이러한 아이디어는 동적 솔루션에서 시작해야합니다. 그것은 나를 위해 잘 작동하지만 좀 더 조정이 필요할 수 있습니다. 예를 들어 현재 경로를 기반으로 생성 된 메뉴에 "활성"값을 추가합니다.

관련 문제