Django создает нового пользователя с помощью формы - PullRequest
0 голосов
/ 29 декабря 2018

Я пытаюсь разрешить людям создавать учетные записи, отправляя форму.В настоящее время он просто переходит к экрану входа в систему, но не создает реального пользователя или не обнаруживает никаких ошибок.Отладка в настоящее время включена.

Я попытался добавить оператор else после user_form.is_valid (), чтобы убедиться, что он не недействителен, но возникла та же проблема.Я предполагаю, что это проблема с сохранением формы, но я новичок в Django, поэтому любая помощь приветствуется.

просмотр:

def home(request):
    if request.user.is_authenticated:
        return redirect('user_dashboard')
    else:
        user_form = CreateUserForm(request.POST or None)
        if request.method == 'POST':
            if user_form.is_valid():
                user_form.save()
        context = {
            'user_form': CreateUserForm,
        }
        return render(request, 'Main/index.html', context)

Модель:

class CreateUserForm(forms.ModelForm):
    password = forms.CharField(widget=forms.PasswordInput())
    confirm_password = forms.CharField(widget=forms.PasswordInput())
    class Meta:
        model = User
        fields = [
            'username',
            'email',
            'password',
        ]

    def clean_password(self):
        password = self.cleaned_data.get("password")
        confirm_password = self.cleaned_data.get("confirm_password")

        if password != confirm_password:
            raise forms.ValidationError(
                "password and confirm_password does not match"
            )
        else:
            return password

1 Ответ

0 голосов
/ 29 декабря 2018

Ваша проблема здесь:

context = {
        'user_form': CreateUserForm,
    }

Это должно быть:

context = {
        'user_form': user_form,
    }

Приветствия:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...