если пользователь новый, то его
если такой уже был, то я бросаю исключение, которое выше обрабатывается
вообще, если пользователь существует и он правильно залогинился - то его обычно логинят))
Но если такой логики придерживаться как у тебя, то убери user.full_clean() и по идее должно быть норм