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 [email protected].
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