User creation form returns back to the same register page with no errors

hi sorry for the late response, as my topic was getting approved.
so i have edited the views,forms and template file but it still does not redirect to home page, can you take a look please :slight_smile: :grinning:

My Forms File:

from django import forms

from django.contrib.auth.models import User

from django.contrib.auth.forms import UserCreationForm


class UserCreateForm(UserCreationForm):
	email = forms.EmailField()

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

My Views File:

from django.shortcuts import render, redirect

from .forms import UserCreateForm

from django.contrib import messages

# Create your views here.

def register(request):

	if request.method == 'POST':

		form = UserCreateForm(request.POST)

		if form.is_valid():
			form.save()
			email = form.cleaned_data.get('email')
			messages.success(request,f"account created for {email}")
			return redirect ('home')

		

	else:

		form = UserCreateForm()

	context = {'form': form,
			   'title': 'Register Page'}


	return render(request, 'users/register.html', context)

My Templates File:

{% extends 'blog/base.html' %}

{% load crispy_forms_tags %}


{% block content %}

<div class="container">

  <h2>Please Register Here </h2>

<form method="post">

  {% csrf_token %}
    
    

  
<div class="form-group">
    
  {{ form.email|as_crispy_field }}
</div>

<div class="form-group">
  {{ form.password1|as_crispy_field }}
</div>

<div class="form-group">
  {{ form.password2|as_crispy_field }}
</div>


<button class="btn btn-outline-info" type="submit">Sign Up</button>
</form> 

</div>

{% endblock content %}

EDIT 2: SO i Finally figured it out:

ok finally i figured it out.

class meta, i had to put class Meta (capital M)

and also fields = [‘email’,‘password1’,‘password2’]

i can register users now by email :slight_smile:

1 Like