Правильный способ обработки дополнительных пользовательских данных в Django? - PullRequest
3 голосов
/ 21 декабря 2009

Мне нужно добавить значительное количество дополнительных свойств каждому пользователю в моем проекте Django. Некоторые из этих свойств являются простыми CharFields, другие являются более сложными ManyToManyFields. Беда для меня в том, что при поиске способов сделать это я нашел две опции: метод профиля пользователя , описанный в документации, и метод подклассов пользователя Я вижу плавающие в интернете.

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

Ответы [ 4 ]

2 голосов
/ 21 декабря 2009

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

Если вы хотите быть в безопасности, используйте профиль. Если вы предпочитаете немного рисковать и получать выгоду от гораздо лучшего решения, используйте подклассы. Это было введено по причине - было несколько разговоров о слабостях решения профиля.

0 голосов
/ 22 декабря 2009

Как и aldux, я предпочитаю создать отдельную модель и оставить модель пользователя нетронутой.

0 голосов
/ 21 декабря 2009

Я выбрал другой путь: у меня была модель Clients, ведьма должна проходить аутентификацию. Вместо того, чтобы расширять пользовательскую модель для адаптации к моей модели клиентов, я оставил их разделенными. И затем, когда я сохраняю нового клиента, в методе Client save () я создаю пользователя для этого клиента. Затем я делаю то же самое для обновления и удаления, чтобы синхронизировать их. Я попробовал два других варианта, но у каждого было много минусов, поэтому я отказался от них. И это очень хорошо работает для меня.

С уважением. Альдо.

0 голосов
/ 21 декабря 2009

Рекомендованным, и, кажется, самым простым, является метод профиля пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...