Django zmienne sesyjne przekazywane z formularza

0

Cześć, mam pytanie odnośnie zmiennych sesyjnych. Piszę mały projekt, który ma polegać na dodawaniu przedmiotów i ewentualnym ich skreślaniu(coś w rodzaju ToDoList).
Nie chcę zapisywać informacji standardowo w bazie danych tylko aby były one trzymane w zmiennych sesyjnych, które usuwają się w momencie zamknięcia karty w przeglądarce.
Coś tam próbowałem z pomocą google i potrafię już przechwycić dodany przedmiot i rzeczywiście po użyciu print() zwraca mi aktualnie dodany przedmiot.
Obecnie nie wiem jak przekazać dodany przedmiot przez użytkownika do templatek(mam na myśli do strony frontendowej aplikacji).

Jeżeli jesteście w stanie doradzić jak zrobić to poprawniej lub podpowiedzieć co nieco będzie mi niezmiernie miło. :)

Z góry dziękuję za pomoc. :D

1

tworzenie zmiennej -> request.session["key"] = value
przechwycenie zmiennej -> request.session.get("key")

0

@ledi12:
Dzięki za post. Kawałek mojego kodu wklejam na dole. Dopiero po użyciu metody POST mam tę zmienną, wcześniej ona nie istnieje. Jeżeli ją zadeklaruje jako sessionData=None przed if'em, to po przeładowaniu strony mi ją nadpiszę i będzie po prostu None.
Więc dalej nie rozwiązało mi to mojego problemu przekazania zmiennych. Chyba że mógłbym Ciebie prosić o dokładniejsze rozpisanie tego na moim przykładzie. :)

    if request.method == 'POST':
        form = TaskForm(request.POST)
        if form.is_valid():
            request.session['form_data'] = form.cleaned_data
            sessionData = request.session['form_data']
        return redirect('/')
    context = {'shopList': shopList, 'form': form, 'products': products, 'sessionData': sessionData}
    return render(request, 'QuickShopperApp/home.html', context)
1
    form_cleaned = None
    if request.method == 'POST':
        form = TaskForm(request.POST)
        if form.is_valid():
            form_cleaned = form.cleaned_data
    context = {'shopList': shopList, 'form': form, 'products': products, 'formCleaned': form_cleaned}
    return render(request, 'QuickShopperApp/home.html', context)

Sproboj tak

0

@ledi12:
Tak rzeczywiście działa, koniec końców też do tego doszedłem, ale mój kod wyglądał 10razy gorzej niż Twój i miał niepotrzebne rzeczy.:D
A powiesz mi jeszcze prosze jak mogę to zrobi,ć aby te rzeczy dodawały się (może do jakiejś tablicy) i były widoczne jedna po drugiej i możliwe do edycji?
Czy to podejście i ten kod o którym rozmawialiśmy ma sens, aby to działało w taki sposób?
Dziękuję jeszcze raz za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1