custom user model แทนที่ User เริ่มต้นของ Django เพื่อให้เหมาะกับความต้องการของแอปพลิเคชัน — เพิ่มฟิลด์, เปลี่ยนตัวระบุการ login (เช่นใช้อีเมลแทน username) หรือปรับแต่งพฤติกรรม คำแนะนำที่สำคัญและพูดถึงบ่อย: ตั้งค่า custom user model ตั้งแต่เริ่มต้นโปรเจกต์เลย แม้ว่าคุณยังไม่ต้องการการเปลี่ยนแปลง เพราะการเปลี่ยนมันภายหลังยากมาก
ทำไม: 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
