Django为用户配置文件添加了两个字段

时间:2014-08-15 18:57:31

标签: python django django-admin

我正在尝试添加两个额外的配置文件字段,并使本机身份验证工作正常。

我正在尝试暂停文档here 和SO here

在我的设置文件中

#settings.py
AUTH_USER_MODEL = 'users.User'

在我的users.user模型

#users/models.py
from django.contrib.auth.models import AbstractUser
from django.db import models

class User(AbstractUser):
    foo = models.CharField(max_length=32, default='Blue')
    bar = models.CharField(max_length=32, default='Blue')
    print "user.user"

我创建了3个非超级用户,可以登录管理员。我已经尝试在添加用户后同步数据库。我已经尝试在添加用户之间重新启动开发服务器。

我唯一一次看到print的输出" user.user"是我运行createsuperuser命令。

我认为我无法登录,因为用户并未真正被创建。它运行我的User类,然后跳过实际创建用户。但我对此有点新意,所以我可以离开联盟。

为什么我无法登录,如何添加这两个字段?

1 个答案:

答案 0 :(得分:0)

您是否阅读过Django文档中的警告?

  

更改AUTH_USER_MODEL会对数据库结构产生很大影响。它更改了可用的表,它将影响外键和多对多关系的构造。如果您打算设置AUTH_USER_MODEL,则应在首次运行manage.py syncdb之前进行设置。

     

如果您有一个现有项目并且想要迁移到使用自定义用户模型,则可能需要考虑使用像South这样的迁移工具来简化过渡。

鉴于此警告,您是在使用新数据库,还是使用South进行迁移?如果你有一个现有的数据库并进行了这些更改,那么简单地运行syncdb很可能就不够了。

如果这是一个没有任何重要数据的开发服务器,我会重新创建您的数据库,然后运行./manage.py syncdb。如果您使用的是SQLite数据库,那么您只需将其复制到其他地方(如果您想保留数据),然后再次运行syncdb以创建新数据库。

Here is the relevant documentation.

确切地知道您收到的错误也很有帮助。您是否尝试登录并且管理员告诉您您的用户/通行证组合不正确,或者是否存在实际错误?你的问题并不能说清楚。