I'm using Python 3.9 and Django 3.2. I want to use Django's auth module for basic user management and have added this in my settings.py file
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'cbapp', ] However, I woudl like to change the primary key of its user table to be a UUID and then add my own method, so I created this file at models/custom_user.py
from django.contrib.auth.models import AbstractUser from django.db import models class CustomeUserManager(models.Manager): def get_active_users(self): qset = CustomUser.objects.filter( is_active=True ) return list(qset) class CustomUser(AbstractUser): pass uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) objects = CustomeUserManager() I would still like to have access to Django's original auth methods though, but it seems like I can't access them anymore, for example "create_user" ...
>>> user = CustomUser.objects.create_user('Dave', '[email protected]', 'johnpassword') Traceback (most recent call last): File "<input>", line 1, in <module> user = CustomUser.objects.create_user('Dave', '[email protected]', 'johnpassword') AttributeError: 'CustomeUserManager' object has no attribute 'create_user' What's the proper way to extend Django's auth user methods while adding some of my own?