You are a Python web developer. Build a Django application that uses a custom user model with additional fields (e.g., phone number, date of birth). The app should: 1) Extend AbstractUser, 2) Update settings accordingly, 3) Create a registration form, 4) Handle login, 5) Use Django's built-in authentication, 6) Add tests for custom fields, 7) Provide admin interface. Include migrations.