Как пофиксить didn't return an HttpResponse object, если стоит rediret на нужную страничку, а он не видит?
У меня есть вот такая формочка регистрации
class RegistrationForm(UserCreationForm):
class Meta:
model = User
fields = ['username', 'password1', 'password2']
username = forms.CharField(label="",
max_length=1024,
required=True,
widget=forms.widgets.TextInput(attrs={
"display": "block",
"class": "username-block",
"placeholder": "Введите ваш Логин",
}))
password1 = forms.CharField(label="",
max_length=1024,
required=True,
widget=forms.widgets.PasswordInput(attrs={
"display": "block",
"class": "password1-block",
"placeholder": "Придумайте надежный пароль",
}))
password2 = forms.CharField(label="",
max_length=1024,
required=True,
widget=forms.widgets.PasswordInput(attrs={
"display": "block",
"class": "password2-block",
"placeholder": "Подтвердите пароль",
}))
И вот файл views.py
def reg(request):
if request.method == "POST":
form = RegistrationForm(request.POST)
if form.is_valid():
username = form.cleaned_data.get("username")
pass1 = form.cleaned_data.get("password1")
pass2 = form.cleaned_data.get("password2")
if pass1 == pass2:
messages.success(request, f"Добро пожаловать, {username}")
return redirect('home')
else:
messages.error(request, "Ваши пароли не совпадают!")
else:
form = RegistrationForm()
return render(request, 'shop/reg.html', {
"title": "Регистрация",
"form": form
})
Вроде бы всё норм, если не POST, то всё работает корректно, но как только срабатывает форма, то сразу ошибка, The view shop.views.reg didn't return an HttpResponse object. It returned None instead.
Не понимаю, ведь я же возвращаю redirect на другую страницу...
Помогите, пожалуйста
Ответы (1 шт):
Автор решения: W. D. Gaster
→ Ссылка
Надо быть внимательнее, условный оператор ошибок не прощает:
def reg(request):
if request.method == "POST":
form = RegistrationForm(request.POST)
if form.is_valid():
username = form.cleaned_data.get("username")
pass1 = form.cleaned_data.get("password1")
pass2 = form.cleaned_data.get("password2")
if pass1 == pass2:
messages.success(request, f"Добро пожаловать, {username}")
return redirect('home')
else:
messages.error(request, "Ваши пароли не совпадают!")
return render(request, 'shop/reg.html', {
"title": "Регистрация",
"form": form
})
else:
form = RegistrationForm()
return render(request, 'shop/reg.html', {
"title": "Регистрация",
"form": form
})