템플릿에 for 루프가 있습니다. 블로그의 첫 번째 3 개 항목 만 루프에 표시하고 싶습니다.더 나은 성능을 위해 템플릿 또는 뷰에서 django for 루프를 제한 하시겠습니까?
현재 블로그 항목은 20 개이지만 블로그 항목이 500 개 이상인 경우 성능 측면에서 views.py 코드 또는 템플릿 코드의 루프를 제한하는 것이 더 좋습니까? 여기
blog_latest_entries = BlogDetails.objects.filter(blog_date_published__lte=date_now).order_by('-blog_date_published')[:3]
.....
return render(request, 'page.html', {
'blog': blog_details_latest_entries,
템플릿 코드에서 제한된다 :
{% for blog in blog|slice:"3" %}
성능에 가장 적합한 옵션을
여기에 views.py 파일에서 루프 한계입니다. 나는 views.py 접근법을 의심하지만 실제 지식을 가진 누군가가 나의 의구심을 뒷받침 해 주길 바란다.
감사합니다.
사용하는 것보다 동일합니다. – Deadpool
같은. Django Debug Toolbar를 사용하십시오, Luke! –
보기에서 qs를 제한하십시오. SQL 문은 두 경우 모두에서 실행되지만 제한된 SQL 문은 더 빠르며 그리 무겁지 않습니다. 템플릿의 q를 자르면 같은 출력이되지만 처음 세 요소가 필요할 때에도 모든 데이터를로드하므로 오래 걸릴 수 있습니다. 더 많은 최적화를하고 싶다면'prefetch_related()'와'values_list()'를 찾아보기를 권합니다. 그리고'for loop'에서 실행중인 변수의 이름을 바꾸십시오. 그것은 동일해서는 안됩니다. – hansTheFranz