I took that from [`UserCreationForm`](https://github.com/django/django/blob/master/django/contrib/auth/forms.py) in the Django source code.

The rationale behind their decision probably has something to do with [EAFP vs. LBYL](http://web.archive.org/web/20070929122422/http://mail.python.org/pipermail/python-list/2003-May/205182.html), although I don't think it actually protects us from race conditions in the way EAFP is supposed to.

I'm still unsure about whether or not this choice makes sense in the end, so I'll definitely switch it if you still want me to.