Автоматически создавать суперпользователя с каждой схемой 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, сохраняя пароль в другом месте?..