0

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

Мое сомнение в том, как я могу автоматически создать суперпользователя без ввода пароля в оболочке. Вариант использования, как только пользователь регистрируется для своей схемы, генерируется суперпользователь, и пользователь входит в систему с именем пользователя и паролем суперпользователя и может впоследствии изменить пароль.

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

call_command('createsuperuser', schema_name=self.schema_name, username='admin', email='[email protected]') 

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

ответ

0

вы можете «подготовить» пароль для нового суперпользователя и передать значение md5 Баш:

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

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

так что вы можете использовать d5b3eb515b64edf295b2ee9062946d24 в Баш, сохранение пароля где-то еще ..

+0

U c, моя проблема не в безопасности, так как пользователю придется сменить пароль перед продолжением. Но моя проблема в том, как я могу передать значение, а не через bash, но автоматически через код для django. Даже суперпользователь без пароля в порядке, так что для первого использования пользователь должен будет указать пароль – SG2791

+0

, поэтому ваш вопрос заключается в том, как принудительно сменить пароль при регистрации? .. –

+0

Извините, если я не понял. Мой вопрос заключается в том, как автоматически отправлять этот пароль в Django, то есть когда пользователь регистрируется, call_command вызывает createuperuser, но он запрашивает пароль в командной строке. Я хочу, чтобы пароль был автоматически отправлен, то есть не через командную строку, а через некоторые программы/коды – SG2791