- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Django,并且我创建了一个自定义用户模型,以便能够使用电子邮件作为主要登录方法而不是用户名。一切正常,但我无法使用命令创建 super 用户 python manage.py createsuperuser
.
这是我的代码:
models.py
from django.db import models
from django.core.mail import send_mail
from django.contrib.auth.models import PermissionsMixin
from django.contrib.auth.base_user import AbstractBaseUser
from django.db.models import CASCADE
from django.utils.translation import ugettext_lazy as _
from .managers import UserManager
class User(AbstractBaseUser, PermissionsMixin):
user_name = models.CharField(_('user name'), max_length=35)
email = models.EmailField(_('email address'), unique=True)
date_joined = models.DateTimeField(_('date joined'), auto_now_add=True)
is_active = models.BooleanField(_('active'), default=True)
is_staff = models.BooleanField(_('staff'), default=False)
is_superuser = models.BooleanField(_('superuser'), default=False)
avatar = models.ImageField(upload_to='media/', null=True, blank=True)
objects = UserManager()
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
class Meta:
verbose_name = _('user')
verbose_name_plural = _('users')
def email_user(self, subject, message, from_email=None, **kwargs):
'''
Sends an email to this User.
'''
send_mail(subject, message, from_email, [self.email], **kwargs)
这里是managers.py
from django.contrib.auth.base_user import BaseUserManager
class UserManager(BaseUserManager):
use_in_migrations = True
def _create_user(self, email, password, **extra_fields):
"""
Creates and saves a User with the given email and password.
"""
if not email:
raise ValueError('The given email must be set')
email = self.normalize_email(email)
user = self.model(email=email, **extra_fields)
user.set_password(password)
user.save(using=self._db)
return user
def create_user(self, email, password=None, **extra_fields):
extra_fields.setdefault('is_superuser', False)
return self._create_user(email, password, **extra_fields)
def create_superuser(self, email, password, **extra_fields):
extra_fields.setdefault('is_superuser', True)
if extra_fields.get('is_superuser') is not True:
raise ValueError('Superuser must have is_superuser=True.')
return self._create_user(email, password, **extra_fields)
该进程创建一个普通用户而不是 super 用户,并且它被创建。但我无法登录管理面板 /admin
最佳答案
您可以像下面这样实现 UserManager。它比您的代码更简单。
class UserManager(BaseUserManager):
def create_user(self, email, password=None):
if email is None:
raise TypeError('Users must have an email address.')
user = self.model(email=self.normalize_email(email))
user.set_password(password)
user.save()
return user
def create_superuser(self, email, password):
if password is None:
raise TypeError('Superusers must have a password.')
user = self.create_user(email, password)
user.is_superuser = True
user.is_staff = True
user.save()
return user
关于python - manage.py createsuperuser 不适用于自定义用户模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51462947/
在django修改用户模型后报错 当我要创建一个 super 用户时,它没有提示输入用户名,而是跳过它,反正对象属性用户名仍然需要,导致用户创建失败。 import jwt from django.d
我正在尝试在 Django 1.6 中实现我自己的自定义用户模型,但出现此错误。 Traceback (most recent call last): File "./manage.py", li
.bash_profile export PATH="/Applications/MAMP/bin:/usr/local/bin:/usr/local/sbin:usr/local/$ export
尝试使用新的 django 1.9 版本,并通过以下方式创建一个 super 用户: python manage.py createsuperuser 而我只是想在我的本地开发环境使用一个简单的密码,
我正在使用 Django,并且我创建了一个自定义用户模型,以便能够使用电子邮件作为主要登录方法而不是用户名。一切正常,但我无法使用命令创建 super 用户 python manage.py crea
我正在尝试使用 PostGreSQL 数据库在我的服务器上部署我的 Django 应用程序(2.1.5 和 Python 3.6.6)。我像往常一样执行了“makemigrations”和“迁移”,然
我正在使用 Django 和 Cassandra 运行 Debian 服务器。我无法通过命令创建管理员用户: python manage.py createsuperuser 运行命令导致错误: ca
我正在开发一个应用程序,我在其中制作了自定义的 'User' 模型,该模型将电子邮件作为用户名,并且它依赖于另一个名为 'Company'。运行命令时 'python manage.py create
我正在尝试使用Djangoappengine 。我按照说明进行操作,但是当我到达这一步时: manage.py createsuperuser 我得到以下信息: 未知命令:“createsuperus
我正在尝试使用Djangoappengine 。我按照说明进行操作,但是当我到达这一步时: manage.py createsuperuser 我得到以下信息: 未知命令:“createsuperus
“python manage.py createsuperuser”命令给了我这个错误: Superuser creation skipped due to not running in a TTY.
我是 Django 的新手。我找到了这段代码 python manage.py createsuperuser 这有什么用?什么情况下需要? 最佳答案 来自django-docs (强调我的): Th
我有一个已部署的 Django 项目。我正在为该项目使用 virtualenv 并在其中安装了 django。我已经激活了 virtualenv。 当我输入 pip freeze 时,我得到: Dja
我正在学习 Django 并通过 this tutorial 工作在 djangoproject 网站上。到目前为止一切顺利,但我遇到了“python manage.py createsuperuse
我正在尝试从控制台创建一个对象,但不确定如何设置它。这是我的模型管理器: class MajorManager(models.Manager): def __str__(self): retu
我不知道如何在 PyDev Django shell 中执行 python manage.py createsuperuser。 我希望下面的东西能起作用,但没有任何作用。我以前从未真正使用过这些 s
嗨, 我想在 Visual Studio 中使用 Python 3.7 和 Django 2.1。我刚刚从 Visual Studio 创建了一个新的 Django 项目。它创建了 Python-Dj
我正在尝试在我的 django 应用程序引擎项目上创建一个新的 super 用户,以便访问内置的管理功能。每次当我运行时 python manage.py createsuperuser 我收到一条错
我创建了一个新的 Django 项目,我做的第一件事就是在 Django 文档的帮助下创建一个自定义用户:https://docs.djangoproject.com/en/2.0/topics/au
使用新 Configurable user model从 Django 1.5 (1, 5, 0, 'beta', 2) 运行 manage.py createsuperuser 时出现此错误尝试设置
我是一名优秀的程序员,十分优秀!