我一直在编写一个 Django webapp,对我的 User 模型没有太多关注——提供的模型很好,但我意识到我希望能够以某种方式对其进行自定义。
从头开始使用自定义用户模型看起来很简单,但是在保留现有用户的同时迁移到一个有点棘手,并且给我带来了很多问题。我发现本指南使用了一个特殊的包,并针对我的具体情况提供了分步说明(Django 1.8、Python 3.4)。
准备步骤之一是
您必须确保在您的项目(包括 3rd 方库)的任何地方都使用 AUTH_USER_MODEL 和 django.contrib.auth.get_user_model() 而不是“auth.User”和 django.contrib.auth.models.User。
我的项目不是很复杂——对 User 模型的唯一引用是在 ForeignKeys 以及几行获取 User 对象。
我应该在哪里使用 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 设置不为空,所以我认为设置中存在不同的错误。