Небольшое изменение в пользовательской модели (не подкласс)…Плохая идея?

#django #django-models

#django #django-модели

Вопрос:

Я знаю, что это плохая идея напрямую касаться пользовательской модели. Вместо этого вы должны расширить его. Моя проблема в том, что я уже расширил до определенной степени. Я хотел, чтобы пользователи регистрировались / аутентифицировались по своему адресу электронной почты, а не по имени пользователя. Для этого я превратил username в хэш-значение их адреса электронной почты.

Это сработало просто отлично. Моя проблема сейчас в том, что у моего администратора беспорядок всякий раз, когда у меня есть пользовательский ForeignKey. Метод unicode пользовательской модели представляет имя пользователя. В моем случае это не идеально. Я бы предпочел иметь возможность видеть имя или адрес электронной почты, чтобы время от времени я мог вручную просматривать что-либо.

Мой вопрос в том, могу ли я просто изменить метод Unicode в пользовательской модели, не создавая проблем? Достаточно ли это тривиально, чтобы не привести к будущим / текущим сбоям?

Спасибо

Комментарии:

1. Почему бы не попробовать и не протестировать это? Вы могли бы написать несколько тестов для функциональности, которую вы хотите реализовать, и для других функций, которые, как вы опасаетесь, могут быть нарушены.

2. Я подумал, что это может быть распространенный вопрос. Если есть лучший способ или это считается ужасным, я хотел бы знать. Я довольно новичок в django и не хочу ломать свой сайт

Ответ №1:

Теперь, когда я перечитываю ваш вопрос… Почему бы просто не превратить имя пользователя в само электронное письмо вместо его хэширования?

Комментарии:

1. имя пользователя имеет максимальную длину 30. Некоторые электронные письма могут быть длиннее

2. Хороший момент; тогда я сам столкнусь с этой проблемой на днях. Спасибо 🙂