A custom user model replaces Django's default User to fit your application's needs — adding fields, changing the login identifier (e.g. email instead of username), or customizing behavior. The critical, oft-repeated advice: set up a custom user model at the very start of a project, even if you don't need changes yet, because changing it later is extremely painful.
డిఫాల్ట్ User సీమిత మరియు తరువాత మార్చడం కష్టం
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
