Django에서 createsuperuser 명령 자동화
Django에서는 관리자 권한이있는 사용자를 수퍼 유저라고합니다. 수퍼 유저는 모든 것을 할 수 있습니다. 새로운 사용자 생성, 기존 사용자 삭제, 다른 사용자의 정보 조작 등을 할 수 있습니다.
Django에서는 수퍼 유저를 생성하기 위해 일반적으로 명령 줄 명령 인python manage.py createsuperuser
를 사용하고 사용자 이름, 이메일 및 비밀번호와 같은 몇 가지 추가 입력을 사용합니다.
하지만이 전체 프로세스를 자동화하거나 한 줄의 코드로 완료 할 수 있다면 놀라운 일이 아닐까요?
이 기사에서는 수퍼 유저 생성을 자동화하는 방법을 배웁니다.
Django Shell을 사용하여 수퍼 유저 생성
Django Shell은 Django의 데이터베이스 API를 사용하여 데이터베이스와 상호 작용하는 명령 줄 Python 도구입니다. Django Shell을 사용하여 데이터베이스에 데이터를 생성하고 기존 데이터를 수정하고 기존 데이터를 삭제할 수도 있습니다. 또한 새로운 사용자와 슈퍼 사용자를 만들 수도 있습니다.
Django Shell을 사용하여 수퍼 유저를 생성하려면 다음 스크립트를 사용하십시오.
echo "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser('userUsername', 'userEmail', 'userPassword')" | python manage.py shell
이 스크립트는 Django에서 사용하는 사용자 모델을 가져 오기 위해 먼저get_user_model
메소드를 가져옵니다.
이 메서드는 실제 사용자 모델 개체에 대한 참조를 검색하여User
변수에 저장합니다.
이 참조를 사용하여create_superuser()
를 사용하여 새 수퍼 유저를 생성합니다. 이 방법은 사용자 이름, 이메일 및 비밀번호를 허용합니다.
이 필드는 Django의 기본 사용자 모델에 유효합니다. 사용자 정의 사용자 모델을 사용하는 경우 사용자 또는 수퍼 유저를 만드는 필드가 그에 따라 변경됩니다.
Python 스크립트를 사용하여 수퍼 유저 생성
Django 모델은 Django 프로젝트의 모든 곳에서 액세스 할 수 있으므로이를 사용하여 사용자와 수퍼 유저를 만들 수 있습니다. 일부 입력을 받아들이는 함수를 만든 다음이 작업을 위해이를 사용하여 수퍼 유저를 만들 수 있습니다.
from django.contrib.auth.models import User
def createSuperUser(username, password, email="", firstName="", lastName=""):
invalidInputs = ["", None]
if username.strip() in invalidInputs or password.strip() in invalidInputs:
return None
user = User(
username=username,
email=email,
first_name=firstName,
last_name=lastName,
)
user.set_password(password)
user.is_superuser = True
user.is_staff = True
user.save()
return user
이 함수에는 사용자 이름과 암호라는 두 개의 필수 인수와 세 개의 선택적 인수가 있습니다. 전달 된 값을 기반으로 수퍼 유저를 생성하고 새로 형성된 수퍼 유저에 대한 참조를 반환합니다.