как определить глобальный объект набора запросов, который я могу использовать в моих представлениях Django - PullRequest
1 голос
/ 25 сентября 2019

Я хочу определить глобальную переменную, которая хранит данные из таблицы базы данных для конкретного фильтра в этой модели.Мне нужны эти данные в каждом представлении определенных функций.Я не хочу запускать запрос каждый раз, когда мои функции вызывают, если есть вызовы ajax, я могу повторно использовать этот объект. Если страница обновится, то я сделаю запрос снова, но на той же странице, если был сделан какой-либо вызов ajax,я могу использовать ту же глобальную переменную без запуска БД Query.Я использую фреймворк Django для этого.Любое предложение по этому вопросу, как я могу оптимизировать это решение?Спасибо !!

1 Ответ

1 голос
/ 25 сентября 2019

Вы можете использовать context_processors для этого: Примечание: Context_processor всегда возвращает только словарь

Например:

context_processors.py

def global_data(req):
   your_global_query = YourModel.objects.all()
   return {'queryset':queryset}

Теперь вам нужно добавить этофункция в вашем файле settings.py

TEMPLATES = [
    {

        'OPTIONS': {
            'context_processors': [
             ..........
            'your.path.to.global_data'
...