понедельник, 6 февраля 2012 г.

Re: оптимизация

Попробуй сделать простейшую вью:

def view(request):
post = Post.objects.all()[:1]
print post
return render_to_template('empty.html')

но главное не отдавай ей экземпляр post - есть подозрение что ты в шаблоне где-то обращаешься к полям Post, которые влекут дополнительные запросы.

Увидишь, что запрос будет один. А дальше разбирайся что творится в шаблоне твоей вьюхи и куда она там лазит так, что влечет выполнение дополнительных запросов. И делай этим полям .select_related().

On 06.02.2012, at 17:58, GSV wrote:

> class PublicManager(Manager):
> """Returns published posts that are not in the future."""
>
> def published(self):
> return self.get_query_set().filter(status__gte=2,
> publish__lte=datetime.datetime.now())
>
> def published_news(self):
> return self.get_query_set().filter(Q(status__gte=2),
> Q(publish__lte=datetime.datetime.now())).exclude(Q(categories__slug='blogs'))
>
> def published_blogs(self):
> return self.get_query_set().filter(status__gte=2,
> publish__lte=datetime.datetime.now()).filter(categories__slug='blogs')
>
> def all_my_blogs(self):
> return self.get_query_set().filter(categories__slug='blogs')
>
>
> On 6 Лют, 15:56, Владимир Корсун <korsun.vladi...@gmail.com> wrote:
>> И что у вас в дефолтном менеджере?

Комментариев нет:

Отправить комментарий