Я писал веб-приложение Django, не особо заботясь о своей модели пользователя - предоставленная модель была хорошей, но я понял, что хотел бы иметь возможность ее как-то настроить.
Начать с нуля с настраиваемой пользовательской моделью выглядит довольно просто, но переход на одну модель с сохранением существующих пользователей немного сложнее и доставляет мне много проблем. Я нашел это руководство, в котором используется специальный пакет и есть пошаговые инструкции для моей конкретной ситуации. (Джанго 1.8, Питон 3.4).
Одним из подготовительных шагов является
Вы должны убедиться, что везде в вашем проекте (включая сторонние библиотеки) вы используете AUTH_USER_MODEL и django.contrib.auth.get_user_model(), а не "auth.User" и django.contrib.auth.models.User.
Мой проект не очень сложный - единственные ссылки на модель пользователя находятся в ForeignKeys, а также пара строк, которые получают объекты пользователя.
Где мне использовать django.contrib.auth.get_user_model()? У меня сложилось впечатление, что для ForeignKeys необходимо использовать settings.AUTH_USER_MODEL и любую операцию времени выполнения (например, obj = User.objects.get(<criteria>)
установит User
с get_user_model()
. Это правильно?
В настоящее время у меня есть настройка AUTH_USER_MODEL, например:
AUTH_USER_MODEL = User
в качестве промежуточного шага с импортом django.contrib.auth.models.User
вверху settings.py
.
Я попытался переключить свои модели, чтобы использовать настройку:
class League(models.Model):
name = models.CharField(max_length=100)
users = models.ManyToManyField(settings.AUTH_USER_MODEL)
Однако, когда я запускаю сервер, я продолжаю получать сообщение об ошибке settings.py
raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.
Что я здесь делаю неправильно? Параметр SECRET_KEY не пуст, поэтому я думаю, что в настройках есть другая ошибка.
AUTH_USER_MODEL
должен быть строкой, например'auth.user'
. - person Alasdair   schedule 19.02.2016