Неактуальное значение переменной сеанса Django в представлении
У меня есть два мнения по поводу некоторых ступенчатых процессов.
- шаг 1: покажите все элементы с флажками, используйте ajax для отправки pk удаленного элемента в бэкенд по нажатию кнопки. В бэкенде есть функция для установки этих значений в сессию. .
def selecteditems(request):
if request.is_ajax and request.method == "POST":
request.session['selected'] = request.POST.getlist('items[]')
request.session.modified = True
return HttpResponse(status=200)
- шаг 2: получить эти переменные из сессии и поместить их во второе представление.
def step2(request):
if request.method == "GET":
selectedList = request.session.get('selected')
allItems = Items.objects.all()
selectedItem = allItems.filter(id__in=selectedList)
context = {
"selectedItem": selectedItem,
}
return render(request, 'step2.html', context)
Проблема, которую я получил, заключается в том, что второй вид всегда получает значения "delay", что означает, что я должен обновить страницу, чтобы загрузить последние элементы, которые я только что выбрал, иначе это данные, которые я выбрал в прошлый раз.