Python 实现自定义用户模型时createsuperuser出现问题

Python 实现自定义用户模型时createsuperuser出现问题,python,django,django-models,django-users,Python,Django,Django Models,Django Users,我试图在Django 1.6中实现我自己的自定义用户模型,但我遇到了这个错误 Traceback (most recent call last): File "./manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/Users/gabriel/.virtualenvs/hang_server/lib/python3.4/site-packages/django/core

我试图在Django 1.6中实现我自己的自定义用户模型,但我遇到了这个错误

Traceback (most recent call last):
  File "./manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/gabriel/.virtualenvs/hang_server/lib/python3.4/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
    utility.execute()
  File "/Users/gabriel/.virtualenvs/hang_server/lib/python3.4/site-packages/django/core/management/__init__.py", line 392, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/gabriel/.virtualenvs/hang_server/lib/python3.4/site-packages/django/core/management/base.py", line 242, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/Users/gabriel/.virtualenvs/hang_server/lib/python3.4/site-packages/django/core/management/base.py", line 285, in execute
    output = self.handle(*args, **options)
  File "/Users/gabriel/.virtualenvs/hang_server/lib/python3.4/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 141, in handle
    self.UserModel._default_manager.db_manager(database).create_superuser(**user_data)
TypeError: create_superuser() missing 1 required positional argument: 'email'
这似乎是相当直截了当的,但我似乎不明白为什么我会首先出现这个错误,因为我的create_superuser函数中确实指定了电子邮件。我在网上浏览了一些教程,看不出这是如何以不同的方式实现的。有人能解释一下我做错了什么吗?

查看管理命令,它只提示用户模型的
必填\u字段
属性中的字段(以及用户名)。默认情况下,该属性在AbstractBaseUser中包含电子邮件,但是如果您已经覆盖了它,或者没有从该模型继承(您应该这样做),那么电子邮件将不会被提示,也不会传递给create_superuser方法

class User(AbstractBaseUser, PermissionsMixin):
    username = models.CharField('username', max_length=150, unique=True)
    email = models.EmailField('email address', unique=True, max_length = 255)
    USERNAME_FIELD = 'username'
    REQUIRED_FIELDS = ['email']

对我来说,上面的代码简单地解决了问题。

如何调用UserManager.create_superuser()?您是否给它一个名为email的参数?我通过
/manage.py createsuperuser
调用此参数,并在请求电子邮件的地方得到此异常。感谢在必填字段中添加了电子邮件,它成功了
class User(AbstractBaseUser, PermissionsMixin):
    username = models.CharField('username', max_length=150, unique=True)
    email = models.EmailField('email address', unique=True, max_length = 255)
    USERNAME_FIELD = 'username'
    REQUIRED_FIELDS = ['email']