Performance: Custom user model with AbstractUser
MEDIUM IMPACT
This affects the initial page load speed and authentication-related interactions by changing how user data is loaded and managed.
from django.contrib.auth.models import AbstractUser from django.db import models class CustomUser(AbstractUser): extra_field = models.CharField(max_length=100) # Set AUTH_USER_MODEL = 'app.CustomUser' in settings.py
from django.contrib.auth.models import User from django.db import models # Adding profile info via separate model with OneToOneField class Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) extra_field = models.CharField(max_length=100)
| Pattern | Database Queries | Joins | Query Latency | Verdict |
|---|---|---|---|---|
| Separate Profile Model | 2+ queries per user | 1 join per user | Higher latency due to joins | [X] Bad |
| CustomUser extends AbstractUser | 1 query per user | No joins needed | Lower latency, faster auth | [OK] Good |