Django: Как создать функцию регистрации в django без использования Django Usercreation Form?

Я пытаюсь позволить пользователям создавать учетную запись без использования from django.forms import UserCreationForm. Я просто хочу, чтобы пользователи использовали только поле ввода, а я мог взять то, что они передают в поле ввода и создать для них аккаунт.

Это django формы для создания пользователей с UserCreationForm, как мне теперь сделать то же самое, но без UserCreationForm?

views.py

def RegisterView(request):
    if request.method == "POST":
        form = UserRegisterForm(request.POST or None)
        if form.is_valid():
            new_user = form.save()
            username = form.cleaned_data.get('email')

            messages.success(request, f'Account Created')
            new_user = authenticate(username=form.cleaned_data['email'],
                                    password=form.cleaned_data['password1'],)
            login(request, new_user)
            return redirect('index')
            


    elif request.user.is_authenticated:
        return redirect('index')
    else:
        form = UserRegisterForm()
    context = {
        'form': form,
    }
    return render(request, 'userauths/sign-up.html', context)


forms.py

from django.contrib.auth.forms import UserCreationForm
from userauths.models import User

class UserRegisterForm(UserCreationForm):

    class Meta:
        model = User
        fields = ['username', 'email', 'password1', 'password2']

Вы можете сделать это, создав собственную пользовательскую модельForm.

Это будет включать в себя несколько этапов:

  1. удостоверить форму
  2. сохраните форму
  3. установите пароль, используя метод user.set_password().
Вернуться на верх