2011-12-02 68 views
2

我希望能夠在用戶嘗試註冊但是註冊失敗時向用戶返回消息。 我已經嘗試了所有下面的方法:如何捕獲/註冊Django註冊錯誤?

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

我前一段時間有同樣的問題,這是我的解決方案:

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) 
0

我建議使用The Messages Framework

此外,我無法想象創建用戶投擲DoesNotExist。整個想法是,用戶不存在,所以如果這是拋出,有一些嚴重的問題正在進行。

請注意,消息框架的默認後端是針對會話存儲消息,這對註冊不起作用(因爲沒有用戶登錄),所以我建議看看其中一個後端。