Автоматически создавать суперпользователя с каждой схемой Django

Я работаю над многопользовательским приложением, использующим django-tenant-schema(и postgresql). Теперь, когда создается новая схема, я использую команду call_command для создания суперпользователя. Я также подумал о возможности использования сигнала post_migrate.

Я сомневаюсь, как я могу автоматически создать суперпользователя без ввода пароля в оболочке. Вариант использования - как только пользователь регистрируется на его / ее схеме, генерируется суперпользователь, и пользователь входит в систему с именем пользователя и паролем суперпользователя и может впоследствии изменить пароль.

Я использую следующее для вызова команды createuperuser:

call_command('createsuperuser', schema_name=self.schema_name, username='admin', email='admin@admin.com')

Один из способов решить эту проблему - изменить Джанго createsuperuser.py файл и предоставить пароль там автоматически, но это не приемлемый маршрут, то есть cahnging исходного кода для некоторых вариантов использования. Могу ли я запросить более эффективные методы?

1 ответ

Вы можете "подготовить" пароль для нового суперпользователя и передать значение md5 в bash:

a=# select md5('some password'||'test');;
               md5
----------------------------------
 d5b3eb515b64edf295b2ee9062946d24
(1 row)

a=# create user test superuser password 'md5d5b3eb515b64edf295b2ee9062946d24';
CREATE ROLE

так что вы можете использовать d5b3eb515b64edf295b2ee9062946d24 в bash, сохраняя пароль в другом месте?..

Другие вопросы по тегам