django adding element to list

46 views
Skip to first unread message

rssail

unread,
Nov 11, 2020, 7:49:15 PM11/11/20
to Django users


I'm confused with how django adds elements to a list. consider the following:

    def add(request): 
        if request.method == "POST": 
        form = NewTaskForm(request.POST) 
            if form.is_valid(): 
                task = form.cleaned_data["task"]

                 request.session['tasks'].append(task) 
                # request.session['tasks'] += [task] 

                return HttpResponseRedirect(reverse("tasks:index"))
             else: 
                return render(request, "tasks/add.html",{
                      "form": form
                 }) 
        return render(request, "tasks/add.html",{ 
            "form": NewTaskForm() 
       })

if we add a print statement after request.session['tasks'].append(task) we get a list:

['check email']

we also get the same list if we comment the append line and use the correct way with +=

However, on the redirect to task/index the first way shows an empty list and the second way shows the list that's expected. Why? Whats going on?

Joel Goldstick

unread,
Nov 12, 2020, 4:53:17 AM11/12/20
to django...@googlegroups.com
On Wed, Nov 11, 2020 at 7:48 PM rssail <rslo...@gmail.com> wrote:
>
>
> I'm confused with how django adds elements to a list. consider the following:
>
> def add(request):
> if request.method == "POST":
> form = NewTaskForm(request.POST)
should the above line be indented?
> if form.is_valid():
> task = form.cleaned_data["task"]
>
> request.session['tasks'].append(task)
> # request.session['tasks'] += [task]
>
> return HttpResponseRedirect(reverse("tasks:index"))
> else:
> return render(request, "tasks/add.html",{
> "form": form
> })
> return render(request, "tasks/add.html",{
> "form": NewTaskForm()
> })
>
> if we add a print statement after request.session['tasks'].append(task) we get a list:
>
> ['check email']
>
> we also get the same list if we comment the append line and use the correct way with +=
>
> However, on the redirect to task/index the first way shows an empty list and the second way shows the list that's expected. Why? Whats going on?
>
> --
> You received this message because you are subscribed to the Google Groups "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/a603090f-676e-4608-83f5-ed3f85995dd0n%40googlegroups.com.



--
Joel Goldstick
http://joelgoldstick.com/blog
http://cc-baseballstats.info/stats/birthdays
Reply all
Reply to author
Forward
0 new messages