2012-10-19 3 views
2

Django-CMS의 자리 표시 자 내에서 플러그인 위치를 확인하는 방법을 찾고있었습니다. 이 질문을 찾았습니다 Detect last plugin in a placeholderDjango- CMS : 자리 표시 자의 플러그인 위치

"plugin"은 django cms 키워드입니까? 그것에 관한 문서를 찾을 수 없습니다.

제 질문은 : Placeholder에서 렌더링 된 플러그인에 대한 정보를 얻으려면 어떻게해야합니까? 당신이 당신의 플러그인 방식 (2.4 및 최대)를 렌더링 오버라이드 (override)하지 않는 경우

감사

+0

다음은 [code] (https://github.com/divio/django-cms/)입니다. blob/develop/cms/models/pluginmodel.py # L317)을 사용하여 CMSPlugin 모델을 만듭니다. 보시다시피, 그것이 자리 표시 자의 어디에 있는지 알고있는 유용한 방법을 정의합니다. 이러한 종류의 메소드는 문서화되어 있지 않지만 소스 코드를 읽으면 그 내용이 표시됩니다. – Paulo

+0

감사합니다. Paulo. 내 질문에 대답하기 위해 코드를 살펴 보겠습니다. –

+0

@joseS이 문제를 해결 했습니까? 나는 Paulo의 코멘트를 실제 답변으로 요약하여 그가 제공 한 링크에서 필수 요소를 추가 했으므로 다른 사람들이 더 쉽게 혜택을 누릴 수 있습니다. 어떻게 생각하십니까? – benzkji

답변

1

, 당신은 당신의 맥락에서 instance로 플러그인을해야합니다.

{{ instance.get_position_in_placeholder }}

흥미로운 : is_first_in_placeholderis_last_in_placeholder 다음을 사용하여, 당신은 당신의 플러그인의 1 개을 기반으로 위치를 얻을 수 있습니다. 사실, @paulo는 이미 주석의 방향을 보여주었습니다.) 이것은 새로운 행 번호가있는 코드입니다. https://github.com/divio/django-cms/blob/develop/cms/models/pluginmodel.py#L382

+0

여기에는 플러그인의 하위 플러그인도 자리 표시 자에 포함되어있는 것 같습니다. 그렇다면 자리 표시 자에 직접 플러그인의 위치를 ​​가져 오는 방법이 있습니까? – nils

+0

django-cms 3.2에 대한 빠른 테스트를 통해이 동작을 확인할 수 없습니다. 중첩 된 플러그인은 모두 자신의 (1 기반) 위치를 얻습니다. 어떤 버전을 사용하고 있습니까? – benzkji

관련 문제