Как автоматизировать создание или обновление суперпользователя в Django? - PullRequest
0 голосов
/ 08 февраля 2020

Из этого вопроса , я вижу, что можно обновить создание суперпользователей в Django, используя:

echo "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser('admin', 'admin@myproject.com', 'password')" | python manage.py shell

Это работает для создания суперпользователей, но не для их обновления , Есть ли способ автоматизировать создание или обновление суперпользователей? Нечто похожее на create_or_update.

1 Ответ

0 голосов
/ 08 февраля 2020

User.objects.create_superuser создает пользователя с is_staff=True и is_superuser=True. И update_or_create() сначала проверяет, существует ли какая-либо строка с данными аргументами.

Таким образом, вы можете создать суперпользователя с помощью добавленной вами команды. то есть

echo "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser(email='admin@myproject.com', password='password')" | python manage.py shell

и обновите эту строку следующим образом:

echo "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.update_or_create(email='admin@myproject.com', is_staff=True, is_superuser=True, defaults={'username': 'abcd'})" | python manage.py shell

Это создаст нового пользователя, если запись с данными не найдена. Далее вы можете прочитать о update_or_create () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...