Регистрационная форма не отправляется
Попробовав множество решений из других стековых переполнений, я не могу заставить свою регистрационную форму работать в Django.
Это регистрационная форма
<h1>Register</h1>
<div>
<form method="POST" action="{% url 'register' %}"></form>
{% csrf_token %}
{{ form.as_p}}
<input type="submit" value="register" />
</div>
Ниже представлен views.py `
def register_page(request):
form = CustomUserCreateForm()
if request.method == 'POST':
form = CustomUserCreateForm(request.POST)
if form.is_valid():
user = form.save(commit=False)
user.save()
login(request, user)
return redirect('login')
page = 'register'
context={'page':page, 'form':form}
return render(request, 'login_register.html', context)
`
Формы.py `
class CustomUserCreateForm(UserCreationForm):
class Meta:
model = User
fields = ['username', 'email', 'name', 'password1', 'password2']
`
Не выдает никакой ошибки, скорее просто не отправляется. Я попробовал изменить функцию ввода на кнопку, но она все равно не работает. Есть идеи?
Я думаю, что сохранение экземпляра формы на самом деле не делает user
аутентифицируемым объект User
Попробуйте это
if form.is_valid():
#You are not doing anything to user, so no need to commit=False
#user = form.save(commit=False)
form.save()
username = form.cleaned_data.get('username')
password = form.cleaned_data.get('password1')
#Make sure user is an authenticated user object
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
#Handle no user as appropriate eg,
#else:
# messages.error(request,'Well that didn't work')