- PVSM.RU - https://www.pvsm.ru -

В django появилась возможность использования своей модели вместо contrib.auth.models.User

image

Через шесть лет после появления тикета [1] с предложением возможности использования своей модели вместо штатной django.contrib.auth.models.User и тысяч [2] постов [3] с [4] идеями [5] использования дополнительной модели профилей случилось чудо: https://github.com/django/django/commit/70a0de37d132e5f1514fb939875f69649f103124 [6]

Теперь модель пользователя указывается в настройках проекта:

AUTH_USER_MODEL = 'auth.User'

А для создания ForeignKey к модели пользователя предлагают использовать следующий способ:

user = models.ForeignKey(settings.AUTH_USER_MODEL)

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

Остальная документация по новой функциональности уже есть на сайте: docs.djangoproject.com/en/dev/topics/auth/#customizing-the-user-model [7]

Те, кому не терпится опробовать долгожданную фичу в действии, уже могут использовать trunk репозитория, любителям стабильности же придется ждать выхода django 1.5.

Автор: svartalf


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/django-2/16059

Ссылки в тексте:

[1] тикета: https://code.djangoproject.com/ticket/3011

[2] тысяч: http://habrahabr.ru/post/118468/

[3] постов: http://www.b-list.org/weblog/2006/jun/06/django-tips-extending-user-model/

[4] с: http://www.turnkeylinux.org/blog/django-profile

[5] идеями: http://softwaremaniacs.org/blog/2007/03/07/auto-one-to-one-field/

[6] https://github.com/django/django/commit/70a0de37d132e5f1514fb939875f69649f103124: https://github.com/django/django/commit/70a0de37d132e5f1514fb939875f69649f103124

[7] docs.djangoproject.com/en/dev/topics/auth/#customizing-the-user-model: https://docs.djangoproject.com/en/dev/topics/auth/#customizing-the-user-model