계정 생성시 비활성화 하는 방법 문의 드립니다.

안녕하세요?
점프 투 장고를 보며 하나 둘 열심히 배우고 있습니다. 먼저 감사하다는 인사 드립니다 :)

질문이 있는데요, 계정 생성시 비활성화된 상태로 생성이 되고, 이후 관리자가 활성화 시켜주는 기능을 넣고 싶습니다.
구글링 해보니 'is_active' 속성을 false로 바꾸면 된다고 하는데,
어떻게 설정해줄 수 있는지 잘 모르겠습니다 ;; 여기저기 조금 바꿔봤는데 여전히 자동으로 활성화 되네요.

작성해주신 예제에서 is_active = False로 변경할 수 있는 방법 문의 드립니다.
감사드립니다.

ssungdang2 48

2021년 9월 12일 2:11 오후

목록으로
1개의 답변이 있습니다. 1 / 1 Page

책은 아래와 같이 되어 있습니다.

def signup(request):
    """
    계정생성
    """
    if request.method == "POST":
        form = UserForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('username')
            raw_password = form.cleaned_data.get('password1')
            user = authenticate(username=username, password=raw_password)  # 사용자 인증
            login(request, user)  # 로그인
            return redirect('index')
    else:
        form = UserForm()
    return render(request, 'common/signup.html', {'form': form})

위의 내용을 다음과 같이 수정하시면 될것 같은데요. (#변경 주석 처리부분)
테스트 해보지는 못했습니다.

def signup(request):
    """
    계정생성
    """
    if request.method == "POST":
        form = UserForm(request.POST)
        if form.is_valid():
            user = form.save()  # 변경
            user.is_active = False  # 변경
            user.save()  # 변경
            username = form.cleaned_data.get('username')
            raw_password = form.cleaned_data.get('password1')
            user = authenticate(username=username, password=raw_password)  # 사용자 인증
            login(request, user)  # 로그인
            return redirect('index')
    else:
        form = UserForm()
    return render(request, 'common/signup.html', {'form': form})

박응용

2021년 9월 12일 11:46 오후

감사합니다! 말씀해주신 대로 하니까 되네요! form은 객체이고, save() method를 사용하면 user 객체가 나오고...user 객체에 또 save() method가 있다고 생각하면 되는 걸까요? 설명 감사드립니다. 추가질문 드려도 될까요? 위에서 비활성화 된 상태인 계정으로 로그인 시도를 하면, 계정명이나 비밀번호를 확인하라는 error massage가 뜹니다. 구글에서 찾아보니 error_massage를 수정하면 된다고 하는데... 어띠서 error_massage를 어떻게 수정할 수 있는지 모르겠습니다. https://stackoverflow.com/questions/65446830/how-to-register-with-django-admin-approval - ssungdang2님, 2021년 9월 13일 7:34 오후 추천 , 대댓글