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

в 1:15, , рубрики: django, user, метки: ,

image

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

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

AUTH_USER_MODEL = 'auth.User'

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

user = models.ForeignKey(settings.AUTH_USER_MODEL)

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

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

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

Автор: svartalf

Поделиться

* - обязательные к заполнению поля