Django inicio de sesión automático después del registro del usuario (2.1.4) [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Django: Cómo iniciar sesión en el usuario directamente después del registro utilizando CreateView @ genéri 1 respuesta

El inicio de sesión automático de usuarios recién registrados no funciona en el caso de una vista de registro "basada en clases".

Seguí el ejemplo deeste tutorial, que propone la siguiente vista de registro:

# myapp/views.py
from django.contrib.auth.forms import UserCreationForm
from django.urls import reverse_lazy
from django.views import generic

class SignUp(generic.CreateView):
    form_class = UserCreationForm
    success_url = reverse_lazy('login')
    template_name = 'signup.html'

Intenté incluir la solución basada en clases deesta respuesta, pero después de registrar con éxito un nuevo usuario, el inicio de sesión no ocurre como se esperaba. ¿Hay cambios en Django 2.1.4 que puedan causar un mal funcionamiento?

myapp.users.views:

from django.views import generic
from django.contrib.auth import authenticate, login
from .forms import CustomUserCreationForm

class SignUp(generic.CreateView):
    form_class = CustomUserCreationForm
    success_url = '/index'
    template_name = 'signup.html'

    #auto login after register: 
    def form_valid(self, form):
        #save the new user first
        form.save()
        #get the username and password
        username = self.request.POST['username']
        password = self.request.POST['password1']
        #authenticate user then login
        user = authenticate(username=form.cleaned_data['username'], password=form.cleaned_data['password1'],)
        login(self.request, user)
        return super(SignUp, self).form_valid(form)

Respuestas a la pregunta(1)

Su respuesta a la pregunta