Как сделать аунтификацию пользователя не для дефолтного 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 в формате - «приложение.Модель»