Niestandardowy model użytkownika zastępuje domyślny User Django'a, aby dostosować się do potrzeb aplikacji — dodając pola, zmieniając identyfikator logowania (np. e-mail zamiast nazwy użytkownika) lub dostosowując zachowanie. Krytyczna, często powtarzana rada: skonfiguruj niestandardowy model użytkownika na samym początku projektu, nawet jeśli nie potrzebujesz zmian teraz, ponieważ zmiana go później jest niezwykle bolesna.
Dlaczego to ważne
The default User has fixed fields (username, email, first/last name) and uses
USERNAME as the login field. Real apps often need:
✓ Email-based login (no username)
✓ Extra fields (phone, avatar, role, preferences) on the user itself
✓ Custom authentication behavior
