Python Django Login Register

// go to templates - includes folder - alerts.html
{% if messages %}
<ul class="messages">
  {% for message in messages %}
  <li{% if message.tags %} class="{{message.tags}}"{% endif %}>
    {% if message.level == DEFAULT_MESSAGE_LEVELS.ERROR %} Important: {% endif %}
    {{ message }}
  </li>
  {% endfor %}
</ul>
{% endif %}
// go to settings.py 
from django.contrib.messages import constants as messages
MESSAGE_TAGS = {
    messages.INFO: 'danger',
}
// go to templates - accounts folder - register.html 
 <center>
<div class="col-lg-5 order-1 order-lg-2">

  <div class="row justify-content-md-center">
    <div class="col-md-9" style="margin-bottom: 250px; margin-top: 150px;">
      <div class="featured-box featured-box-primary text-start mt-0">
        <div class="box-content">
          {% include 'includes/alerts.html'%}
          <h4 class="color-primary font-weight-semibold text-4 text-uppercase mb-3">Register An Account</h4>
          <form action="{% url 'register'%}" id="frmSignUp" method="POST" class="needs-validation">
            {% csrf_token %}

            <div class="row">
              <div class="form-group col-lg-6">
                <label class="form-label">First Name</label>
                {{ form.first_name }}
              </div>
              <div class="form-group col-lg-6">
                <label class="form-label">Last Name</label>
                {{ form.last_name }}
              </div>
            </div>

            <div class="row">
              <div class="form-group col-lg-6">
                <label class="form-label">Email</label>
                {{ form.email }}
              </div>
              <div class="form-group col-lg-6">
                <label class="form-label">Phone Number</label>
                {{ form.phone_number }}
              </div>
            </div>
            <div class="row">
              <div class="form-group col-lg-6">
                <label class="form-label">Password</label>
                {{ form.password}}
              </div>
              <div class="form-group col-lg-6">
                <label class="form-label">Re-enter Password</label>
                {{ form.confimr_password}}
              </div>
            </div>
            <div class="row">
              <div class="form-group col-lg-9">
                <div class="custom-control custom-checkbox">
                  <input type="checkbox" name="terms" class="custom-control-input" id="terms">
                  <label class="custom-control-label text-2" for="terms">I have read and agree to the <a href="#">terms of service</a></label>
                </div>
              </div>
              <div class="form-group col-lg-3">
                <input type="submit" value="Register" class="btn btn-primary btn-modern float-end" data-loading-text="Loading...">
              </div>
            </div>
            {{ form.email.errors}}
            {{ form.non_field_errors }}
          </form>
        </div>
      </div>
    </div>
  </div>

</div></center>
// go to accounts folder APP - forms.py 
from django import forms
from .models import Account

class RegistrationForm(forms.ModelForm):
    password = forms.CharField(widget=forms.PasswordInput(attrs={
        'placeholder': 'Enter Password',
        'class': 'form-control'
    }))
    confimr_password = forms.CharField(widget=forms.PasswordInput(attrs={
        'placeholder': 'Confirm Password'
    }))
    class Meta:
        model = Account
        fields = ['first_name', 'last_name', 'phone_number', 'email', 'password']

    def __init__(self, *args, **kwargs):
        super(RegistrationForm, self).__init__(*args, **kwargs)
        self.fields['first_name'].widget.attrs['placeholder'] = 'Enter Firstname'
        self.fields['last_name'].widget.attrs['placeholder'] = 'Enter Lastname'
        self.fields['email'].widget.attrs['placeholder'] = 'Enter Email'
        self.fields['phone_number'].widget.attrs['placeholder'] = 'Enter Phone Number'
        for field in self.fields:
            self.fields[field].widget.attrs['class'] = 'form-control'

    // Use to verify match password        
    def clean(self):
        cleaned_data = super(RegistrationForm, self).clean()
        password = cleaned_data.get('password')
        confimr_password = cleaned_data.get('confimr_password')

        if password != confimr_password:
            raise forms.ValidationError(
                "Password does not match!"
            )

// go to accounts folder APP - urls.py 
 from django.urls import path
from . import views

urlpatterns = [
    path('register/', views.register, name='register'),
    path('login/', views.login, name='login'),
    path('logout/', views.logout, name='logout'),
]
//  
BenLeolam