簡體   English   中英

Djoser / Django Rest Framework /用戶注冊:如何存儲非必需的用戶字段

[英]Djoser / Django Rest Framework / User Registration: How to store non required user fields

我正在使用DjoserDjango Rest Framework通過自定義用戶模型進行用戶注冊。 當我嘗試將“不需要”字段添加到我的自定義用戶模型並將其傳遞(作為** kwargs)時,不會保存這些其他字段。

這是設計使然還是保存這些竅門?

    class UserManager(BaseUserManager):

        def create_user(self, email, phone, password, **kwargs):
            user = self.model(
                email=email,
                phone=phone,
                **kwargs
            )

            user.set_password(password)
            user.save(using=self._db)
            return user

        def create_superuser(self, email, phone, password, **kwargs):
            user = self.model(
                email=email,
                phone=phone,
                is_staff=True,
                is_active=True,
                **kwargs
            )

            user.set_password(password)
            user.save(using=self._db)
            return user

    class User(AbstractBaseUser):
        userId = models.AutoField(primary_key=True)
        email = models.CharField(unique=True, max_length=45, null=False)
        phone = models.CharField(max_length=15, unique=True, null=False)
        password = models.CharField(max_length=255, blank=True, null=True)
        is_active = models.IntegerField(blank=True, null=True)

        class Meta:
            managed = False
            db_table = 'User'

        objects = UserManager()

        USERNAME_FIELD = 'email'
        REQUIRED_FIELDS = ['phone']

        def get_full_name(self):
            return self.email
        def get_short_name(self):
            return self.email
        def natural_key(self):
            return self.email
        def __str__(self):
            return self.email

看起來這是一個已知的Djoser問題,這里有一個解決方法。 github.com/sunscrapers/djoser/issues/249

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM