title: Django 2 - How to register a user using email confirmation and CBVs?
body: <p>This question specifically aims for a Django 2.0 answer as the <code>registration</code> module isn't available (yet) for it.</p>
  <p><em>More, this might seem to broad, but I often found myself in situations where I can't use any 3rd party module because ... oh well..policies. I'm sure many did. And I know that looking and putting together information taken from here or django docs was a headache.</em></p>
  <hr />
  <h3>Workflow:</h3>
  <p>Let's suppose we need the following flow:</p>
  <ol>
  <li>The user goes to the sign-up page and fills in the following fields: <code>first_name</code>, <code>last_name</code> and <code>email</code> (the email will be used as the username).</li>
  <li>The user submits the form and receives a confirmation email with an URL containing a unique token.</li>
  <li>When the user clicks on the received link, he's redirected to a page where he'll set his password. When done, he's logged in to the dashboard page.</li>
  </ol>
  <p><em>Extra-info: The user will later log in by using his email (which is actually his username) and password.</em></p>
  <hr />
  <h3>Specific question:</h3>
  <ul>
  <li>How will the models/views (using CBVs)/forms/urls look like?</li>
  </ul>