2016-02-19 64 views
2

在我的表單中,只要有人使用他們的用戶名註冊,我就會得到這個。我如何防止錯誤轉到一個全新的黃頁,並讓它回到用戶並將其作爲表單錯誤提出來?如何捕獲UNIQUE約束失敗:auth_user.username錯誤?

+1

對不起,這是不是你在計算器發問。你需要具體,最重要的是,張貼你嘗試過的一些代碼。您目前的描述過於籠統,並沒有幫助,我們無法爲您提供幫助。想象一下,我寫了一個答案:你可以把你的代碼封裝在'try except'中,然後用表單重定向到同一頁面,然後在頁面中顯示錯誤,這也是沒有用的,對吧? –

+0

@ShangWang其實真的很有幫助 – swedishfished

回答

0

嘿,這是非常簡單,你只使用Django內置AuthenticationForm

from django.contrib.auth.forms import AuthenticationForm 

form = AuthenticationForm(request.POST) 

if form.is_vaild(): 
    form.save() 
else: 
    # handle error 
    # you can also use form.errors as message 
0

如果唯一約束拋IntegrityError:

from django.db import IntegrityError 

try: 
    user.save() 
except IntegrityError as e: 
    if 'UNIQUE constraint' in e.message: 
     #do something 
相關問題