Registration form is not submitting
After trying multiple solutions from other stack overflows, I cannot seem to get my registration form to work in Django.
This is the registration form
<h1>Register</h1>
<div>
<form method="POST" action="{% url 'register' %}"></form>
{% csrf_token %}
{{ form.as_p}}
<input type="submit" value="register" />
</div>
Below is the 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)
`
The forms.py `
class CustomUserCreateForm(UserCreationForm):
class Meta:
model = User
fields = ['username', 'email', 'name', 'password1', 'password2']
`
Its not throwing any error, rather just not submitting. I tried changing the input to button feature but it is still not working. Any Ideas?
I think saving the form instance doesn't actually make user an authenticatable User object
Try this
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')