vgarvardt/django-loginza — pull request #25 by chibisov (2012-10-02 20:13:04+00:00)
Title: Генерация нового username

Сейчас новый username формируется так:

while True:
try:
existing_user = User.objects.get(username=username)
username = '%s%d' % (username, existing_user.id)
except User.DoesNotExist:
break

При таком итерировании возможен вариант, когда username превысит 30 символов и возбудится исключение DoesNotExist.
При создании пользователя будет использоваться 30-ти символьный обрезанный username, который на самом деле существует в базе.
Столкнулся именно с такой ситуацией. Не знаю, почему вы выбрали именно такой вариант формирования username, возможно на этом завязана какая-то логика? Предлагаю формировать username из md5 хэша случайной строки.