Define a custom user model for your django project
In this tuto, we will add a custom user model to use an email as username. You can get started by using the django project below, which is set-up to work out-of-the-box with tailwindCSS and daisyUI (see here my other post for details)
git clone https://github.com/kenshuri/setup_django_tailwind_daisyui.git .\003_define_custom_user\
cd .\003_define_custom_user\
Create a new app to deal with accounts
If you want to check for disposable email domains, install django-email-blacklist
. You will then be able to check if a new user is using disposable email when writing your sign-up form.
pip install django-email-blacklist
Get the accounts app from github and save the folder accounts
at your project root.
Integrate in main project
# setting.py
# Application definition
INSTALLED_APPS = [
# ...
'accounts',
# ...
]
# Custom User model
AUTH_USER_MODEL = 'accounts.CustomUser'
DISPOSABLE_EMAIL_DOMAINS = "accounts/blacklist/disposable_email_domains.txt"
Set-up project
python manage.py makemigrations
You should see the following output:
Migrations for 'accounts':
accounts\migrations\0001_initial.py
- Create model CustomUser
If not, the main chance is that you forgot to add accounts
to the list of installed apps in settings.py
. Do not run the migrations while the migrations on accounts app in not ready!
Then, if the migration is ready, ie you saw the above message after running makemigrations
, run the following commands:
python manage.py migrate
python manage.py createsuperuser
You can see that an Email address is asked instead of a username. Et voilĂ ! You're good to go :)
Finish set-up if you started from the proposed project
cd jstoolchains
npm install
npm run tailwind-watch
python manage.py runserver