---
# System prepended metadata

title: Accounts

---

# Accounts

A custom django app has been made (referenced in `pwmanager/settings.py`)
A custom account model has been created in this app `accounts/models.py - class Account`
Due to these changes, it is necessary to run `python manage.py makemigrations` and `python manage.py migrate` before running the development server

## Password Reset
The custom user model defines a password reset token field as a string of up to 24 chars
The `save` function in `accounts/models.py` has been added to, so that it generates a random 24-char long password reset token if there is not one present for the account being saved (this happens on signup & more)
Some characters are not present in the choice, to minimise confusion between visually alike characters
`[website]/password_reset` is where the user can reset their password using their token (`accounts/views.py - def PasswordResetView`)
If the user enters the correct token for their username, the password is reset, and their token is wiped
They are then logged in and shown the new code.
