2010-04-14 2 views
0

내 도시에 대한 할인 행사를 게시합니다. 제안 모델은 템플릿 (페이지 당 15 개 제안)에 전달됩니다. 모든 제안에는 많은 항목이 있습니다 (모든 항목에는 FK가 있습니다), 따라서 템플릿에서 DB 요청을 많이해야합니다.Django 템플릿에서 DB 요청 번호 감소

{% for item in offer.1 %}         

        {{item.descr}} 
        {{item.start_date}} 
        {{item.price|floatformat}} 
        {%if not item.tax_included %}{%trans "Without taxes"%}{%endif%} 
        <a href="{{item.offer.wwwlink}}" >{%trans "Buy now!"%}</a> </div>     
        <div class="clear"></div> 

{% endfor %} 

는 그래서 내가 기대 이상입니다 ~ 페이지 당 200 ~ 400 개 DB 요청이 있습니다.

django 코드에서는 select_related를 사용하여 필요한 값을 미리 채울 수 있습니다. 어떻게 템플릿의 요청 수를 줄일 수 있습니까?

답변

1

물론 마찬가지입니다. 보기에서 쿠폰 목록을 얻으면 select_related을 입력하십시오.

+0

어떻게? 내가해야합니까 - {제안에 대한 item.select_related % 1}? – Andrew

+1

아니요 - 내가 말했듯이,보기에. 처음에 '제안'을 얻는 방법을 정확하게 보여 주면 도움이 될 것입니다. –

0

항상 할 수 있습니다 -보기에서 모든 변수를 최적화 된 방식으로 검색 한 다음 템플릿에 전달하십시오. 템플릿은 데이터베이스 마법을 수행 할 장소가 아니며 그렇게해서도 안됩니다.

그러나 장고는 그다지 적합하지 않습니다. 무겁게 캐시하는 것이 더 일반적입니다. 예를 들어, 많은 태그가 데이터베이스 히트를 할 수 있습니다 ...

관련 문제