Django User Registration Authentication – SignUpView
We can implement simple sign up registration by using in-built UserCreationForm Auth Form(signup class based view). We will be using CreateView in View. We can create sign up using only username and password. But we are adding extra fields in forms.py ( django create user form ) while registration like first last name and email.
urls.py
from django.urls import path from core.views import SignUpView urlpatterns = [ path('signup/', SignUpView.as_view(), name='signup'), ]
views.py
from django.shortcuts import render
from django.urls import reverse_lazy
from django.views.generic import CreateView
from core.forms import SignUpForm
# Sign Up View
class SignUpView(CreateView):
form_class = SignUpForm
success_url = reverse_lazy('login')
template_name = 'commons/signup.html'forms.py
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
# Sign Up Form
class SignUpForm(UserCreationForm):
first_name = forms.CharField(max_length=30, required=False, help_text='Optional')
last_name = forms.CharField(max_length=30, required=False, help_text='Optional')
email = forms.EmailField(max_length=254, help_text='Enter a valid email address')
class Meta:
model = User
fields = [
'username',
'first_name',
'last_name',
'email',
'password1',
'password2',
]signup.html
{% extends 'base.html' %}
{% block title %}Sign Page{% endblock title %}
{% block content %}
<h2>Sign Page</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Register</button>
<br><br>
<a href="{% url 'home' %}">Home</a>
</form>
{% endblock content %}
Sign up here with your email
ConversionConversion EmoticonEmoticon