Почему нам нужно регистрировать пользователя в функции signup_view и login_view? Django

Мне нужен теоретический ответ, а не практический, я следовал этому учебнику по Django и все кажется довольно понятным, но я не уверен в одной вещи, вот представления для страницы регистрации и страницы входа:

def signup_view(request):
    if request.method == "POST":
        form = UserCreationForm(request.POST)
        if form.is_valid():
            user = form.save()
            #log the user in
            login(request, user)          


            return redirect("articles:list")
    
    else:
        form = UserCreationForm()

    return render(request, 'account/signup.html', {"form": form})

def login_view(request):
    if request.method == "POST":
        form = AuthenticationForm(data = request.POST)
        if form.is_valid():
            #log in the user
            user = form.get_user()
            login(request,  user)
            return redirect('articles:list')

    else:
        form = AuthenticationForm()
    return render(request, "account/login.html", {"form":form})


Итак, мой вопрос в том, почему мне нужно писать login(request, user) дважды, разве функция signup не сохраняет пользователя в базе данных, а функция log in просто регистрирует его?

В коде, для post запроса и валидных форм, ответом всегда является перенаправление на articles:list страницу.

Если считать представление articles:list требующим входа, то для просмотра страницы пользователи должны иметь активную сессию.

В функции login_view после аутентификации вполне очевидно, что следующим шагом будет вход пользователя в систему и перенаправление на articles:list

В signup_view логика может быть такой: добавить пользователя в базу данных и перенаправить на articles:list, но поскольку articles:list требует входа, нам нужно войти в систему.

Возможно, именно так они продумали логику для примера, все зависит от того, что вам нужно, поскольку это не правило для входа пользователя в систему после регистрации.

Вернуться на верх