使用django cookie cutter,如何在项目中间更改为自定义用户模型

时间:2018-02-13 01:02:01

标签: python django cookiecutter-django

我正在尝试使用Cookiecutter帮助我使用Heroku和Amazon S3部署Web应用程序。

这是我在没有Cookiecutter的情况下在本地开发的应用程序,因此我将文件复制粘贴到新项目中并逐步调试。

原始应用程序使用内置Django用户模型,因此我想切换到Cookiecutter附带的抽象用户模型。 我开始为这个项目创建一个新的数据库,从头开始。

然后我认为这就像用User

替换AUTH_USER_MODEL一样简单

models.py

from config.settings.base import AUTH_USER_MODEL

class Category(models.Model):
    name = models.CharField(max_length=30)
    description = models.CharField(max_length=140,blank=True,null=True)
    date_created = models.DateField(default=timezone.now)
    date_updated = models.DateField(auto_now=True)
    created_by = models.ForeignKey(AUTH_USER_MODEL, related_name="categories")

    def __str__(self):
        return self.name

运行manage.py migrate

时出现此错误
accounts.User.user_ptr: (fields.E301) Field defines a relation with the model 'auth.User', which has been swapped out.
    HINT: Update the relation to point at 'settings.AUTH_USER_MODEL'

在settings.py中

AUTH_USER_MODEL = 'users.User'

我遗失的地方?

1 个答案:

答案 0 :(得分:0)

您的错误消息似乎表明问题来自另一个名为accounts.User的模型,但它未包含在您提供的代码段中。该错误在accounts应用中显示了一个模型,但设置AUTH_USER_MODEL指向users应用中的模型。这两种不同的型号?您是否将users应用重命名为accounts但忘了更新设置?