Django выдает ошибку при попытке доступа к странице регистрации

Django бросает мне следующее, когда я пытаюсь получить доступ к странице регистрации...

The view accounts.views.signup_view didn't return an HttpResponse object. It returned None instead.

Я думаю, что все было сделано правильно, но, видимо, django не согласен.

Signup.html

<h3>Register</h3>

<form method="POST" action="">
    {% csrf_token %}
    {{form.as_p}}

    <input type="submit" name="Create User">
</form>

urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('signup/', views.signup_view, name='signup'),
]

views.py

from django.shortcuts import render, redirect
from django.contrib.auth.forms import UserCreationForm


# Create your views here.
def signup_view(request):
    if request.method == "POST":
        form = UserCreationForm(request.POST)
        if form.is_valid():
            form.save()

        context = {'form': form}
        return render(request, 'signup.html', context)

Редактирование :

Если я удалю все из views.py и оставлю только

def signup_view(request):
    form = UserCreationForm()
    return render(request, 'signup.html', {'form': form})

Он позволяет мне зайти на страницу... но как только я пытаюсь добавить функцию сохранения, он выдает ошибку.

В первой строке signup_view у вас есть if request.method == "POST": Таким образом, если метод запроса не POST, представление возвращает None.

def signup_view(request):
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('username')
            messages.success(request, f'Account created for {username}!')
            return redirect('http://localhost:8000')
    else:
        form = UserCreationForm()
        return render(request, 'signup.html', {'form': form})

Мне нужно было использовать перенаправление и сохранение, чтобы это сработало. но даже если этот вопрос был решен, все еще есть одна маленькая вещь

Моя домашняя страница существует под url ' ' (пустой) и я не могу перенаправить на нее, поэтому вместо этого используется localhost:8000, как я могу заменить его?

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