使用Django + Djoser创建帐户[“无法创建帐户。”]

Xenetrix

我正在尝试使用Django和Djoser创建用户。尝试创建用户时,出现错误[“无法创建帐户。”]

我正在使用从AbstractUser继承的CustomUser:

class CustomUser(AbstractUser):
    MAN = 'man'
    WOMAN = 'woman'
      
    GENDER_CHOICES = (
        (MAN, 'Man'),
        (WOMAN, 'Woman'),
    )

    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    email = models.EmailField(_('Email'), unique=True,db_index=True)

    gender = models.CharField("Gender", max_length=30, choices=GENDER_CHOICES, blank=True, null=True)
    birth_date = models.DateField("Birth date", blank=True, null=True)

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = ['last_name','first_name',]

    objects = CustomUserManager()

用于创建用户的自定义管理器:

class CustomUserManager(BaseUserManager):
    def create_user(self, email, first_name, last_name, password, **extra_fields):
        if not email:
            raise ValueError(_('email is required'))
        if not first_name:
            raise ValueError(_('first_name is required'))
        if not last_name:
            raise ValueError(_('last_name is required'))
        email = self.normalize_email(email)
        user = self.model(email=email,first_name=first_name,last_name=last_name, **extra_fields)
        user.set_password(password)
        user.save(using=self._db)
        return user

    def create_superuser(self, email, first_name, last_name, password, **extra_fields):

        extra_fields.setdefault('is_staff', True)
        extra_fields.setdefault('is_superuser', True)
        extra_fields.setdefault('is_active', True)

        if extra_fields.get('is_staff') is not True:
            raise ValueError(_('superuser must have is_staff=True.'))
        if extra_fields.get('is_superuser') is not True:
            raise ValueError(_('superuser must have is_superuser=True.'))
        return self.create_user(email, first_name, last_name, password, **extra_fields)

在我的urls.py中

urlpatterns = [
    path('admin/', admin.site.urls),
    path('auth/', include('djoser.urls')),
    path('auth/', include('djoser.urls.jwt')),
]

创建用户的命令:

curl -X POST http://127.0.0.1:8000/auth/users/ --data 'password=xxxxxx&[email protected]&first_name=Charlie&last_name=Lim'

当我尝试使用te last命令创建用户时,收到下一个错误:

["Unable to create account."]                                                                                                                                                                           

我已经按照所有步骤操作,并阅读了一些教程,但是找不到问题。

Xenetrix

这是一个愚蠢的小错误,很容易解决。

AbstractUser具有一个用户名字段,该字段是唯一键。在我的程序中,用户名不是必需的,当我尝试创建多个用户时,将使用参数blank = False null = False创建这些用户,并抛出错误。

解决方案:使用空白= True null = TrueCustomUser类中重新定义此字段。

class CustomUser(AbstractUser):
...
    username = models.CharField(
        _('username'),
        max_length=150,
        unique=True,
        blank=True, 
        null=True,
        help_text=_('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.'),
        validators=[username_validator],
        error_messages={
            'unique': _("A user with that username already exists."),
        },
    )
...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法使用Firebase创建帐户?

来自分类Dev

在Django中创建帐户后无法登录

来自分类Dev

无法使用服务帐户创建Dataproc集群

来自分类Dev

Django 创建帐户以 550 结束

来自分类Dev

使用多个帐户时无法创建新阶段?

来自分类Dev

禁止使用OAuth创建帐户

来自分类Dev

从命令行创建帐户时,无法使用login命令登录到该帐户

来自分类Dev

无法使用Eclipse IDE在Python-Django上创建超级用户帐户?

来自分类Dev

无法使用Eclipse IDE在Python-Django上创建超级用户帐户?

来自分类Dev

使用SOAP / REST创建zimbra用户帐户

来自分类Dev

如何在使用Meteor创建帐户期间创建加载功能

来自分类Dev

从Visual Studio 2013创建Azure项目时无法使用Windows Azure帐户登录

来自分类Dev

无法在Windows 7上使用管理员帐户创建原始套接字

来自分类Dev

使用贝宝(Paypal)商业帐户时无法创建捐赠按钮

来自分类Dev

在尝试使用Firebase创建帐户时创建用户文档时出现“无法读取未定义的属性'user'”

来自分类Dev

无法创建解析帐户

来自分类Dev

创建Django管理员帐户:密码的空值

来自分类Dev

创建Django管理员帐户:密码的空值

来自分类Dev

使用Djoser创建相关模型

来自分类Dev

是否可以使用与创建Clearcase视图的帐户不同的帐户来签入

来自分类Dev

使用php在条带中创建托管帐户时,如何提供外部帐户参数?

来自分类Dev

流星用户帐户问题-使用OAuth服务创建的重复帐户(accounts-google)

来自分类Dev

使用ASP.NET Idenity创建默认用户帐户

来自分类Dev

使用令牌创建的Twitter帐户在iOS7上失败

来自分类Dev

如何使用单独的用户帐户创建Rails应用程序?

来自分类Dev

使用Facebook登录用户创建新帐户的最佳做法

来自分类Dev

使用服务帐户和Google Admin SDK创建用户?

来自分类Dev

使用PowerShell,我可以找到创建用户帐户的时间吗?

来自分类Dev

使用Woocommerce根据帐户注册参数创建不同的用户角色

Related 相关文章

  1. 1

    无法使用Firebase创建帐户?

  2. 2

    在Django中创建帐户后无法登录

  3. 3

    无法使用服务帐户创建Dataproc集群

  4. 4

    Django 创建帐户以 550 结束

  5. 5

    使用多个帐户时无法创建新阶段?

  6. 6

    禁止使用OAuth创建帐户

  7. 7

    从命令行创建帐户时,无法使用login命令登录到该帐户

  8. 8

    无法使用Eclipse IDE在Python-Django上创建超级用户帐户?

  9. 9

    无法使用Eclipse IDE在Python-Django上创建超级用户帐户?

  10. 10

    使用SOAP / REST创建zimbra用户帐户

  11. 11

    如何在使用Meteor创建帐户期间创建加载功能

  12. 12

    从Visual Studio 2013创建Azure项目时无法使用Windows Azure帐户登录

  13. 13

    无法在Windows 7上使用管理员帐户创建原始套接字

  14. 14

    使用贝宝(Paypal)商业帐户时无法创建捐赠按钮

  15. 15

    在尝试使用Firebase创建帐户时创建用户文档时出现“无法读取未定义的属性'user'”

  16. 16

    无法创建解析帐户

  17. 17

    创建Django管理员帐户:密码的空值

  18. 18

    创建Django管理员帐户:密码的空值

  19. 19

    使用Djoser创建相关模型

  20. 20

    是否可以使用与创建Clearcase视图的帐户不同的帐户来签入

  21. 21

    使用php在条带中创建托管帐户时,如何提供外部帐户参数?

  22. 22

    流星用户帐户问题-使用OAuth服务创建的重复帐户(accounts-google)

  23. 23

    使用ASP.NET Idenity创建默认用户帐户

  24. 24

    使用令牌创建的Twitter帐户在iOS7上失败

  25. 25

    如何使用单独的用户帐户创建Rails应用程序?

  26. 26

    使用Facebook登录用户创建新帐户的最佳做法

  27. 27

    使用服务帐户和Google Admin SDK创建用户?

  28. 28

    使用PowerShell,我可以找到创建用户帐户的时间吗?

  29. 29

    使用Woocommerce根据帐户注册参数创建不同的用户角色

热门标签

归档