Open chibisov opened 11 years ago
Столкнулся с такой же проблемой. Правда в моем случае username не обрезается, а возникает ошибка при добавлении пользователя в db:
DatabaseError: value too long for type character varying(30)
username из хеша md5 нечитаемый, может лучше использовать username + randint() ?
У меня в проде решение с md5 работает уже год. Решение с randint будет работать, но с больше долей вероятности возникновения коллизий.
Вариант с randint() мне нравится гораздо больше. В текущем PR мне не нравится, что имя полностью формируется их хэша - вариант vgarvardt23567 мне нравится гораздо больше нежели qoiwuhq3847yoasic8oq34
Сейчас новый username формируется так:
При таком итерировании возможен вариант, когда username превысит 30 символов и возбудится исключение DoesNotExist. При создании пользователя будет использоваться 30-ти символьный обрезанный username, который на самом деле существует в базе. Столкнулся именно с такой ситуацией. Не знаю, почему вы выбрали именно такой вариант формирования username, возможно на этом завязана какая-то логика? Предлагаю формировать username из md5 хэша случайной строки.