Функция Stop, дающая новые результаты при обновлении страницы django - PullRequest
1 голос
/ 09 мая 2019

У меня есть функция, которая принимает введенные варианты и дает случайные объекты из базы данных, которые соответствуют выбору пользователей:

def someFunction():
 if choice == 'Choice1'
  result = Choice1.objects.all.order_by('?')[0]
 elif choice == 'Choice2'
  result = Choice2.objects.all.order_by('?')[0]
 return result

Передается в представление следующим образом:

def ChoiceView():
context = {
    'Choice': someFunction(),
}
return render(request, 'project/choice.html', context)

Проблема, с которой я сталкиваюсь, заключается в том, что, поскольку функция выдает случайные объекты по дизайну каждый раз, когда обновляется страница, дается другой квалифицирующий результат.

Я хочу сохранить функцию случайной, однако после запуска функцииЯ не хочу, чтобы он запускался снова при обновлении страницы, а скорее оставляю исходные результаты функции в силе до тех пор, пока не изменятся параметры выбора, или она не будет намеренно обновлена ​​с целью получения нового набора результатов или заданного значения.Прошло время и т.д.

Любая помощь очень ценится.

Заранее спасибо!

1 Ответ

1 голос
/ 09 мая 2019

Чтобы некоторые данные оставались неизменными между обновлениями страниц, вам нужно их где-то хранить. Есть несколько способов сделать это, но некоторые варианты:

1) Сохраните его в базе данных. Я не знаю, как выглядит остальная часть вашего кода, но, по сути, храню это поле в модели, связанной с пользователем, и извлекаю его каждый раз.

2) Сохраните его в сеансе . Легко начать, потому что вы можете хранить вещи в сеансе с помощью request.session. Не такой постоянный, как опция базы данных, но будет сохраняться между загрузками страниц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...