Джанго: Как создать нового пользователя с пользовательской регистрационной формой - PullRequest
0 голосов
/ 10 ноября 2019

Я пытаюсь создать пользовательскую форму регистрации в Django, используя HTML и CSS, а не form.as_p и Bootstrap Django. У меня есть следующий код в views.py:

def signUp(request):
   if request.POST:
       username = request.POST['username']
       email = request.POST['email']
       password = request.POST['password']
       password_confirm = request.POST['password-confirm']
       if(valid_form(username, email, password, password_confirm)) {
          #create the new user
       } else {
          #send some error message
       }    
return render(request, 'index.html')

У меня есть своя собственная функция valid_form, чтобы проверить, действительны ли введенные пользователем поля формы. Тем не менее, я не уверен, как я могу создать нового пользователя с помощью пользовательской модели Django. Во всех примерах кода, касающихся регистрационных форм, я видел что-то вроде этого:

def register(request):
if request.method == 'POST':
    form = UserCreationForm(request.POST)
    if form.is_valid():
        form.save()
        return redirect('main-page')
else:
    form = UserCreationForm()
return render(request, 'users/register.html', {'form': form})

Где они используют form.save() для создания нового пользователя. Поскольку я не использую модель формы Django, как я могу создать нового пользователя после проверки данных формы? Любые идеи приветствуются.

1 Ответ

0 голосов
/ 10 ноября 2019

Вы можете создать новое Users в своем веб-приложении, изменив views.py, как показано ниже:

from django.contrib.auth import get_user_model


def signUp(request):
   if request.POST:
       username = request.POST['username']
       email = request.POST['email']
       password = request.POST['password']
       password_confirm = request.POST['password-confirm']
       if(valid_form(username, email, password, password_confirm)) {
          user = get_user_model().objects.create(
              username=username,
              email=email,
          )
          user.set_password(password)
          user.save()
       } else {
          #send some error message
       }    
return render(request, 'index.html')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...