From Classy Class Based Views LoginView
Display the login form and handle the login action.
Attributes
- authentication_form: Allows you to subclass 
AuthenticationFormif needed. You would want to do this IF you need other fields besides username and password for login OR you want to implement other logic than just account creation, i.e. account verification must be done as well. For details see example by Vitor Freitas for more details - form_class: The form that will be used by the template created. Defaults to Django’s 
AuthenticationForm - redirect_authenticated_user: If the user is logged in then when they attempt to go to your login page it will redirect them to the 
LOGIN_REDIRECT_URLconfigured in yoursettings.py - redirect_field_name: similar idea to updating what the 
nextfield will be from theDetailView. If this is specified then you’ll most likely need to create a custom login template. - template_name: The default value for this is 
registration\login.html, i.e. a file calledlogin.htmlin theregistrationdirectory of thetemplatesdirectory. 
There are no required attributes for this view, which is nice because you can just add pass to the view and you’re set (for the view anyway you still need an html file).
You’ll also need to update settings.py to include a value for the LOGIN_REDIRECT_URL.
Note on redirect_field_name
Per the Django Documentation:
If the user isn’t logged in, redirect to settings.LOGIN*URL, passing the current absolute path in the query string. Example: /accounts/login/?next=/polls/3/. *
If redirect_field_name is set then the URL would be:
/accounts/login/?<redirect_field_name>=/polls/3
Basically, you only use this if you have a pretty good reason.
Example
views.py
class myLoginView(LoginView):
    pass
urls.py
path('login_view/', views.myLoginView.as_view(), name='login_view'),
registration/login.html
{% extends "base.html" %}
{% load i18n %}
{% block content %}
<form method="post" action=".">
  {% csrf_token %}
  <div class="mui--text-danger">
    {% for error in form.non_field_errors %}
      {{error}}
    {% endfor %}
  </div>
  <div class="mui-textfield">
    {{ form.username.label }}
    {{ form.username }}
  </div>
  <div class="mui-textfield">
    {{ form.password.label }}
    {{ form.password }}
  </div>
  <input class="mui-btn mui-btn--primary" type="submit" value="{% trans 'Log in' %}" />
  <input type="hidden" name="next" value="{{ request.GET.next }}" />
</form>
<br><div class="mui-divider"></div><br>
{% endblock %}
settings.py
LOGIN_REDIRECT_URL = '/<app_name>/'
Diagram
A visual representation of how LoginView is derived can be seen here:
Conclusion
Really easy to implement right out of the box but allows some nice customization. That being said, make those customizations IF you need to, not just because you think you want to.