User model mixins based on Django.
user_mixins model mixins give flexibility to create your own User model.
By default all mixins are optional. Our mixins allow to create, identify users
(from their emails instead of their username) as well as sending password reset
and account validation emails.
Install the package:
pip install django-user-mixins
Install with avatar functionality:
pip install django-user-mixins[avatar]
To create a custom user model using the django-user-mixins functionality, declare
your user class like this:
from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin
from user_mixins.mixins import ActiveUserMixin
class User(ActiveUserMixin, PermissionsMixin, AbstractBaseUser):
pass
If you want to use the VerifyEmailMixin, substitute it for ActiveUserMixin.
Make sure the app containing your custom user model is added to settings.INSTALLED_APPS,
and set settings.AUTH_USER_MODEL to be the path to your custom user model.
If you use EmailUserMixin or any of its derivatives, you'll need to set up Postgres to support a CIText extension in your migration. Add the following to your migration:
from django.contrib.postgres.operations import CITextExtension
operations = [
CITextExtension(),
...
]
user_mixins.mixins.ActiveUserMixin provides a base custom user
mixin with a name, email, date_joined, is_staff, and is_active.
user_mixins.mixins.VerifyEmailMixin extends ActiveUserMixin to
provide functionality to verify the email. It includes an additional
email_verified field.
By default, users will be created with is_active = False. A verification email
will be sent including a link to verify the email and activate the account.
user_mixins.mixins.AvatarMixin adds an avatar field. The
serializers for this field require django-imagekit to be installed.
