Как сделать аунтификацию пользователя не для дефолтного User, а для созданной модели?

У меня есть регистрация в файле views.py

def register(request):
if request.method == 'POST':
    form = UserMainRegister(request.POST)
    if form.is_valid():
        cleaned_data = form.cleaned_data
        username = form.cleaned_data.get('username')
        password = cleaned_data.get('password')
        email = cleaned_data.get('email')
        lastname = cleaned_data.get('lastname')
        middlename = cleaned_data.get('middlename')
        login = cleaned_data.get('login')

        user_instance = UserMain(username=username, lastname=lastname, middlename=middlename, login=login, password=password, email=email, type_of_subscription='standard')
        user_instance.save()  # Сохраняем пользователя в базе данных
        messages.success(request, f'{username}, ваш аккаунт создан. Теперь можно войти на сайт.')
        return redirect('/')
else:
    form = UserMainRegister()
return render(request, 'look/register.html', {'form': form})

Есть модель для регистрации

class UserMain(models.Model):
username = models.CharField(max_length=20)
lastname = models.CharField(max_length=20)
middlename = models.CharField(max_length=20)
login = models.CharField(max_length=20)
password = models.CharField(max_length=25)
email = models.EmailField(max_length=30, unique=True)
type_of_subscription = models.CharField(max_length=30)

forms.py

class UserMainRegister(forms.Form):
email = forms.EmailField()
login = forms.CharField()
password = forms.CharField()
username = forms.CharField()
lastname = forms.CharField()
middlename = forms.CharField()

class Meta:
    model = UserMain
    fields = ['login', 'email', 'password', 'username', 'lastname', 'middlename', 'type_of_subscription']

Как мне сделать вход и проверку есть ли в базе данных пользователь, которого я ввожу в HTML форме на странице? И как прописать не user.is_authenticated, потому что это для дефолтной формы, как сделать для созданной мною?

Наследуйте вашего пользователя от AbstractBaseUser и укажите в settings.py значение для AUTH_USER_MODEL в формате - «приложение.Модель»

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