Как я могу поймать / кроме ошибок регистрации в 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" 

Конечно, ни одна из вышеперечисленных работ не работает. Как я правильно выбрал исключение?

Некоторое время назад у меня была такая же проблема, вот мое решение:

 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) 

Я бы предложил использовать The Messages Framework .

Кроме того, я не могу себе представить, как пользователь бросает DoesNotExist . Вся идея состоит в том, что пользователь не существует, поэтому, если его бросили, возникают серьезные проблемы.

Имейте в виду также, что бэкэндом по умолчанию для структуры сообщений является хранение сообщений против сеанса, который не будет работать для регистрации (поскольку ни один пользователь не вошел в систему), поэтому я предлагаю заглянуть в один из других бэкэндов.