2011-12-02 12 views
2

등록을 시도하지만 등록에 실패 할 때 사용자에게 메시지를 보내고 싶습니다. 위의 작업 물론어떻게 장고로 등록 오류를 잡을까요?

try: 
    user = User.objects.create_user(username, email, password) 
    except User.DoesNotExist 
    print "aaaa" 

    try: 
    user = User.objects.create_user(username, email, password) 
    except IntegrityError 
    print "aaaa" 

,도 : 나는 다음과 같은 방법을 모두 시도했다. 어떻게 제대로 예외를 던질 수 있습니까?

+0

무엇 등록이 실패 할 것이다 : –

+0

폼을'clean' 메소드에서 처리하고'ValidationErrors'를 발생시켜 폼이 다시로드 될 때 사용자에게 에러 메시지를 보여줘야합니다. –

답변

0

나는 여기에 내 솔루션입니다, 얼마 전에 같은 문제가 있었다?
0

The Messages Framework을 사용하는 것이 좋습니다.

또한 나는 DoesNotExist을 던지는 사용자를 생성하는 것을 상상할 수 없습니다. 전체 아이디어는 사용자가 존재하지 않는다는 것입니다. 따라서 던져지면 심각한 문제가 발생합니다.

메시지 프레임 워크의 기본 백엔드는 세션에 대해 메시지를 저장하는 것이므로 사용자가 로그인하지 않았으므로 등록 할 수 없다는 점에 유의하십시오. 따라서 다른 하나 백엔드.

try: 
    user = User.objects.get(username=new_username) 
    # ERROR! user already exists! 
    # if you're using a form you could do: 
    # raise forms.ValidationError('Already exists a user with this username!')   
except User.DoesNotExist: 
    # We're good!, lets create the user 
    user = User.objects.create_user(username, email, password) 
관련 문제