Продолжаю получать эту ошибку при попытке отобразить мою пользовательскую HTML-форму

Вот ошибка, которую я получил, когда удалил предложение else из файла views.py.

  File "C:\Users\david\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\handlers\base.py", line 309, in check_response      
raise ValueError(
ValueError: The view register.views.register didn't return an HttpResponse object. It returned None instead. 

Я предполагаю, что я получил эту ошибку, так как отсутствует else clause, который мне нужен, но если я включу его в файл views.py, то получу другую ошибку

Вот мой файл просмотра:

from django.shortcuts import render,redirect
from django.contrib.auth.models import User, auth

def register(request):
    if request.method == 'POST':
        first_name = request.POST['first_name'],
        last_name = request.POST['last_name'],
        dob = request.POST['dob'],
        email = request.POST['email']
        newuser= User.objects.create_user(first_name=first_name,last_name=last_name, email=email)
        newuser.save()
        print(request.POST)
        return redirect('/home')

Первоначально у меня было предложение else в нижней части этого, но это вызвало другую ошибку.

Вот это положение:

else: 
    return render('/register/userinfo.html')

И ошибка, которую я получаю, когда она на месте:

 File "C:\Users\david\OneDrive\Desktop\Django\Sub\register\views.py", line 4, in render      
    return render(request,'/register/userinfo.html')
TypeError: render() takes 1 positional argument 
but 2 were given

Есть идеи, что может вызвать эту нижнюю ошибку?

Второе сообщение об ошибке предполагает, что ваш код в строке 4 был таким:

return render(request,'/register/userinfo.html')

Вы говорите, что другая оговорка была:

else: 
    return render('/register/userinfo.html')

Вы уверены, что сохранили и перезапустили проект перед тестированием.

Вообще я не представляю, как может возникнуть эта ошибка. Я предлагаю проверить код функции render, чтобы увидеть, что может вызвать проблему.

Вы должны проверить свой путь к userinfo.html. Вы не должны начинать с /. Попробуйте следующее:

return render(request,'userinfo.html')
Вернуться на верх