N.E.M
Безусловно, может возникнуть ситуация, когда необходимо расширить модель пользователя, и самым подходящим путем, для этого, может оказаться создание кастомной модели.
И меня радует что Django предоставляет выбор - либо ссылки на "вспомогательные" модели, либо расширение User. Тем более сейчас, в начале проекта, можно создать, практически, копию модели и использовать и тот и другой способ.
Мои сомнения относительно способа полностью единой кастомной модели User основаны на противоречиях, с которыми я сразу столкнулся.
- Я, как админ, тоже являюсь юзером сайта. Той инфы, что хранит стандартная модель, для админа достаточно. Зачем мне вносить лишнюю информацию в суперюзера? Ведь если я захочу пользоваться сайтом как потребитель, то я просто зарегаю нового пользователя.
Стоит подумать - зачем вообще регистрация на сайте? Каких данных достаточно именно для регистрации (допустим, просто чтобы комментить)? Для себя, смею предположить, стандартных полей мне хватает. То есть у меня могут быть юзеры, которые просто комментят, и которые, допустим, имеют принадлежность к каким-либо фирмам. Зачем для первых лишние поля в модели для регистрации?
То есть, если на сайте есть несколько видов пользователей (а пример с суперюзером показывает что такое почти всегда), то одна модель будет, скорее, обузой.
- Проект состоит из приложений. Не факт что поля в модели, нужные в одном приложении, понадобятся в другом. Так же тут может быть затронут вопрос о совместимости со сторонними приложениями, которые, возможно, понадобятся.
Про это хорошо написано в комментах к вышеуказанной статье. Я там нашел подтверждение своим сомнениям :)
Но, повторюсь, Django сейчас предоставляет нам выбор. То есть, можно сразу, как Вы и предлагаете, делать свою копию моделю User (но админку допиливать все же придется), и спокойно пользовать "старый" метод. А если что, расширить и саму модель. Я только думаю не так категорично как Вы :) Это может понадобится, но далеко не всегда :)