2011-02-25 5 views
2

사용자가 제공 한 많은 콘텐츠 (게시물, 그림, 이벤트 등)가있는 웹 사이트를 재구성하고 있습니다. 이 내용은 섹션 (음악, 상점 등)에 해당합니다. 즉 정상적인 CMS입니다.django : CMS에 대한 재귀 적/트리 모양의 URL 매핑?

각 콘텐츠가 기본 콘텐츠 개체 (다중 테이블 상속)로부터 상속 받기를 원합니다. 이 모든 내용을 쉽게 조회 할 수 있음을 의미하고 단정하고 확장 가능한 (그리고 필요 'CREATED_BY이 (가) 작성한', '제목', '슬러그'등 같은 모든 기본적인 물건을 다시 쓰기 없음)

ContentObj 
    > Blog Post obj 
    > Event Post obj 
    > Podcast Post obj 
    > ... etc. 

예쁜 straightfoward.

조직과 관련하여 다양한 콘텐츠 개체/모델에는 섹션에 할당 할 수있는 옵션이 있어야합니다 (즉, 팟 캐스트 개체는 '음악'아래에 있음). 또는 섹션이 상위 섹션 ('단어> 블로그> 일반>')에 할당 될 수 있어야합니다. 다시 이것은 CMS에서 꽤 늪지대의 표준 아이디어입니다.

이상적으로는 콘텐츠와 관련된 일반적인 솔루션을 보유하고있는 것처럼 완전히 일반적인 솔루션을 이와 같이 조직하고 싶습니다. 나는 각 노드가 섹션이거나 content object 모델 인 tree-like 구조를 생각하고있다.

root 
    > section1 
     > subsection 1 > contentobj1 
     > subsection 2 > contentobj2 
    > section2 
     > contentobj3 

    > contentobj4 

이 일반 설정의 목표는 매우 DRY-esqe URL 스키마와 템플릿 시스템을 갖추는 것입니다. 두세 개의 템플릿 만 있으면됩니다. 사용자가 요청한 URL에 따라 페이지를 채우고/blog ///와 같은 URL을 하드 코딩 할 필요가 없습니다.

데이터베이스 기반 응용 프로그램에서이 트리 구조를 작성하는 방법을 이해하는 데 문제가 있습니다. 컨텐트 모델을 할당 할 수있는 모델 섹션을 쉽게 가질 수 있습니다. 그러나 하위 섹션에 관해서는 조금 까다 롭습니다. 또한 URL 스키마를 추상화하여 섹션에 실제로 하드 코딩하지 않고도 콘텐츠 객체를 가리키는 하위 섹션을 여러 개 가질 수있는 방법은 무엇입니까?

기본적으로 콘텐츠와 조직이 분리 된 구조/스켈레톤과 URL/템플릿 스키마를 작성하여 실제 콘텐츠와 완전히 구분됩니다. 이전에는 블로그 앱, 이벤트 앱이 있었지만 사이트의 모든 콘텐츠를 관리하는 콘텐츠 앱이 있어야하고 섹션을 관리하는 조직 앱일 수도 있습니다.

답변

4

구현시 모델에있는 나무, 체크 아웃은 trees and graphs section on django packages입니다. 나는 django-mptt를 사용하고 추천했다.

참고로, 왜 을 보지 않겠습니까? 그 훌륭한 응용 프로그램은 정말 유연하고 자신의 응용 프로그램을 통합하기위한 많은 확장 점을 가지고 있습니다.

+0

나는 mptt를 한번도 본 적이 없지만, treebeard는 이것을 읽으면 즉시 마음에 떠올랐다 ... – meshantz

+0

나는 나무 mptt와 함께 일한 두 번 모두 이미 프로젝트에서 구현되었으므로 treebeard를 사용할 기회가 없었다. – zsquare

+0

둘 다 마치 나무와 같은 구조 즉, 섹션 –

1

나는이 질문을 좋아한다. 나는 plone-land를 떠난 후 내 머리 뒤에서 침을 흘리며 (내가 아직 수시로 돌아 가지 않는 것은 아니지만) 뭔가를 가지고있다.

필자는 zsquare와 같은 몇 가지 트리 응용 프로그램부터 시작하여 일반적인 외래 키를 사용하여 다양한 콘텐츠 유형 (이벤트, 기사, 카테고리 등)을 연결하는 기본 모델을 작성합니다.

거기에서 나는 동적 인 URL 세대를 다루는 방법을 알아보기 위해 관리자를 파견하여 트리 패키지가 제공하는 기능을 사용하여 내 콘텐츠 트리에 대한 URL을 구축합니다.

+0

예, 하드 코드 된 방식으로 CMS를 조합하여 비즈니스를 수행하는 것처럼 보입니다.이 아이디어를 정확히 지적하려했습니다. 그것을 통해 생각, 나는 계층 적 물건으로 충분히 쉬워야한다고 생각합니다. 나는 관리 물건을 살펴볼 것입니다. 나를 되 찾는 것은 재귀 URL입니다. –