2014-01-23 2 views

답변

1

해결책을 찾았습니다.

예 :

<ul tal:repeat="data context/list-open/queryCatalog"> 
    <li tal:content="data/Title">title</li> 
</ul> 

객체 "리스트 열기"컬렉션이다.

+0

질문에 대한 답변이나 추가 정보가 있습니까? –

+0

그것은 해결책입니다. 소식이 수정되었습니다. –

+0

멋진 경우 가능하면 자신의 답변도 수락 할 수 있습니다. :) –

0

먼저 browserView를 만들어야합니다.

이 브라우저보기에서 병합 된 3 개의 콜렉션을 반환하는 메소드를 추가하거나 결과 목록에서 일종의 이익을 내거나 다른 처리를 할 수 있습니다. 브라우저 템플릿에서

def myNewCompiledCollection(self): 
    """ """ 
    list1 = self.context.list1.queryCatalog() 
    list2 = self.context.list2.queryCatalog() 
    list3 = self.context.list3.queryCatalog() 
    resultList = list1 + list2 + list3 
    return resultList 

은 이렇게 :

<ul tal:repeat="data view/myNewCompiledCollection"> 
    <li tal:content="data/Title">title</li> 
</ul> 
0

당신이 당신의 결과에 중복 항목을 얻을 수 있습니다 목록에 각 수집의 결과를 추가하여. 같은 객체의 뇌가 반드시 동일 객체이기 때문에

brains1 = collection1.ueryCatalog() 
brains2 = collection2.ueryCatalog() 
brains3 = collection3.ueryCatalog() 

results = brains1 + brains2 + brains3 

당신이 당신의 목록을 정화 세트를 사용할 수 없습니다 AFAIK. 그래서 이것은 아마 작동 중 하나를하지 않습니다

set(results) 

당신은 그러나 컬렉션에서 쿼리를 추출하고 Products.AdvancedQuery 또는 사용하여 결합 할 수있다 - 이렇게 쉽게 될 수있는 - A의 당신의 결과 목록을 설정 UID를 목록과는 addiional 카탈로그 검색을 수행합니다 TTW-솔루션을

uids = [brain.UID for brain in results] 
results_without_dups = catalog(UID=uids) 
1

을, 단 하나 개의 위치에서 필요한 경우, 하나는, Products.ContentWellPortlets를 설치하는 페이지를 만들고 세 가지 컬렉션 포틀릿을 할당 할 수 있습니다 페이지에.

관련 문제