Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Вопрос касается Django (повторяются часто одинаковые запросы к БД) [RSS Feed]

#1 Июль 13, 2012 08:03:44

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос касается Django (повторяются часто одинаковые запросы к БД)

Получается так что практически в каждом методе повторяются запросы к БД на выборку всех категорий и тегов.
Можно ли как то сократить запросы к БД ?
Я в сою очередь создал два метода для выборки категорий и тегов, и в каждом
render_to_response передаю эти методы. Но мне кажется это не хороший вариант.



Отредактировано Saturn (Июль 13, 2012 08:09:08)

Офлайн

#2 Июль 13, 2012 08:10:47

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Вопрос касается Django (повторяются часто одинаковые запросы к БД)

Код в студию, а то не понятно ничего.



Офлайн

#3 Июль 13, 2012 08:20:56

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос касается Django (повторяются часто одинаковые запросы к БД)

Хотел узнать, это нормально или нет, когда практически в каждом методе выполняются одинаковые запросы
….

  return render_to_response('list.html', {"posts":posts, 'category':list_cat(request),
                                            'tags':list_tag(request), 'url':url})
    return render_to_response('post.html', {'post': post, 'form' : form, 'comments':comments,
                                            'category': list_cat(request), 'tags' : list_tag(request)})

А именно повторяются ‘category’:list_cat(request) и tags':list_tag(request)
(Это можно сказать данные статические которые нужны для навигации по сайту)



Отредактировано Saturn (Июль 13, 2012 08:26:52)

Офлайн

#4 Июль 13, 2012 08:40:30

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Вопрос касается Django (повторяются часто одинаковые запросы к БД)

Если посмотришь в сторону CBV, то можно сделать красиво

class MyBaseView(object):
   def get_context_data(self, **kwargs):
        context=super(MyBaseView, self).get_context_data(**kwargs)
        context['tags']=list_tag(self.request)
        context['category']=list_cat(self.request)
        return context
class SomeView(MyBaseView, TemplateView):
    def get_context_data(self, **kwargs):
        context=super(SomeView, self).get_context_data(**kwargs)
        context['post']=some_query_set
        return context
   

В принципе, простор для творчества тут неограничен, можешь сделать свой метод, чтобы каждый раз не вызывать родительский контекст, например.



Отредактировано FishHook (Июль 13, 2012 08:42:48)

Офлайн

#5 Июль 13, 2012 08:48:43

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос касается Django (повторяются часто одинаковые запросы к БД)

FishHook
Оо, я про такое не знал., буду разбираться. Спасибо.



Офлайн

  • Начало
  • » Django
  • » Вопрос касается Django (повторяются часто одинаковые запросы к БД) [RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version