Если вы создаете внутреннее приложение, которое никогда не будет выпущено для публики, обязательно делайте что хотите.
Если вы создаете внутреннее приложение, которое вряд ли будет когда-либо выпущено для публики, но, возможно, будет использоваться будущими / нынешними разработчиками, конечно, но обязательно документируйте, что приложение должно работать должным образом.
Если вы создаете приложение для публичного выпуска, постарайтесь сохранить его самостоятельным (и зависимым от django-internals, т. Е., По возможности, использовать то, что предоставляет django). Если вам действительно нужно стороннее приложение для работы или если стороннее приложение сделает ваш код более управляемым, то обязательно включите зависимости, но вдвойне обязательно документируйте все требования и необходимые настройки.
В большинстве случаев вы можете делать практически все, что захотите, если у вас достаточно документации.
Мне, однако, приходится сомневаться в целесообразности создания вашей собственной User
модели, которая имеет то же имя, что и встроенная в django auth.User
.