Путаница в синтаксисе при отправке сообщений в базу данных

Я следую учебнику Телуско. Он перешел на PostgreSQL, но я решил продолжить с SQLite. Он показал этот код для добавления пользователя в базу данных:

def register(request):

  if request.method == "POST":
    firstname= request.POST['firstname']
    lastname= request.POST['lastname']
    email= request.POST['email']
    phone= request.POST['phone']
    username= request.POST['username']
    password1= request.POST['password1']
    password2= request.POST['password2']
    dob= request.POST['dob']
    gender= request.POST['gender']

    user = User.objects.create_user(username=username, email=email, phone=phone, password=password1, dob=dob, gender=gender, firstname=firstname, lastname=lastname,)  
    user.save();
    print('user created')
    return redirect("/")
  else:
    return render(request, 'register.html')  ;

Но я получаю эту ошибку при отправке :

Environment:

Request Method: POST
Request URL: http://127.0.0.1:8000/register

Django Version: 4.1.3
Python Version: 3.11.0
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'login.apps.LoginConfig']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']

Traceback (most recent call last):
  File "C:\Users\yuri\Desktop\naisuback\venv\Lib\site-packages\django\core\handlers\exception.py", line 55, in inner
    response = get_response(request)
  File "C:\Users\yuri\Desktop\naisuback\venv\Lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\yuri\Desktop\naisuback\login\views.py", line 30, in register
    user = User.objects.create_user(username=username, email=email, phone=phone, password=password1, dob=dob, gender=gender, firstname=firstname, lastname=lastname,)

Exception Type: AttributeError at /register
Exception Value: 'Manager' object has no attribute 'create_user'

Я хотел, чтобы я мог вводить информацию в мою HTML форму (которая настроена правильно) и она отправлялась в базу данных методом POST, добавляя нового пользователя. Моя база данных db.sqlite3 открывается автоматически, когда я запускаю server.

У меня есть таблица login_user, в которой уже есть 2 пользователя, которых я добавил через панель администратора.

Вы, должно быть, используете стандартную модель django ModelManager, в которой нет метода create_user. Вам нужно наследоваться от класса AbstractBaseUser вместо models.Model в вашей User модели и добавить objects = UserManager() к вашей модели, как показано ниже:

from django.contrib.auth.models import AbstractBaseUser, UserManager

class User(AbstractBaseUser):
    ...
    objects =  UserManager()
Вернуться на верх