Hi, i need any advice for performance queries
i have a model name Post
post have m2m categories and fk author

the index page show 7 categories in separated row
i try performance
this example
queryset_global =
Post.objects.filter(status__contains='publish').prefetch_related('category').select_related('author')
then i make 7 queries for 7 categories show in index page.

newscat1
= 
queryset_global.filter(category__slug__contains="cat1_name").order_by('-date')[:5]
newscat2
= 
queryset_global.filter(category__slug__contains="cat2_name").order_by('-date')[:5]
newscat3
= 
queryset_global.filter(category__slug__contains="cat3_name").order_by('-date')[:5]
newscat4
= 
queryset_global.filter(category__slug__contains="cat4_name").order_by('-date')[:5]
newscat5
= 
queryset_global.filter(category__slug__contains="cat5_name").order_by('-date')[:5]
newscat6
= 
queryset_global.filter(category__slug__contains="cat6_name").order_by('-date')[:5]
newscat7
= 
queryset_global.filter(category__slug__contains="cat7_name").order_by('-date')[:5]

i retrieve 35 post for show in index page

*according debug toolbar this produce SQL*
*2599.59 ms (44 queries including 34 duplicates )*

Why?

but when i loop in template index.html
{% for news1 in newscat1 %}
    {{news.name}}
    {{newa.date|date:'Y-m-d'}}
    {{news.body|safe|truncatewords:20}}
    {{news.category.all.0}}
   <a href="{{news.get_absolute_url}}">Read More</a>
{% endfor %}
 ...
this repeat in the template 7 time
...
{% for news7 in newscat7 %}
    {{news.name}}
    {{newa.date|date:'Y-m-d'}}
    {{news.body|safe|truncatewords:20}}
    {{news.category.all.0}}
   <a href="{{news.get_absolute_url}}">Read More</a>
{% endfor %}


*according debug toolbar this produce SQL*
*3463.65 ms (86 queries including 77 duplicates )*

this is incredible it doubles the amount of queries to the db that may be
happening?

i need some ideas or tips

Cheers

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAM-7rO1nzzqWf_cpQOrjYwQmxkd77H0AJ8W03FS%3D%2BoA3gEE4zg%40mail.gmail.com.

Reply via email to