Re: Queryset cloning is very expensive

2011-02-24 Thread myx
I found a solution which is suitable for me. As it turns out, all those methods just clone queryset, and then call appropriate methods of Query object. So, for example, to set ordering and to get a slice without cloning queryset, I can do the following: qs.query.add_ordering('-created') qs.query.s

Re: Queryset cloning is very expensive

2011-02-14 Thread myx
rn the original queryset. Seems like I'll have to write raw queries in such cases :( On Feb 11, 1:18 pm, kurvenschubser wrote: > Hi myx, > > cloning is useful for chaining of filters, e.g. > User.objects.filter(name="Harry").exclude(lastname="Potter").filter(somethi

Queryset cloning is very expensive

2011-02-10 Thread myx
Almost every method of QuerySet clones it. Sometimes it is very ineficcient, for example when querysets are constructed in loops. I have a function, which makes about 20 queries, and its execution time is about 100ms. After profiling the function, I saw that clone() takes most of the time: 70ms. It