LoginSignup
0
0

More than 3 years have passed since last update.

djoserでsuperuserを作る方法

Posted at

とりあえずこの記事の通りにやる。
https://qiita.com/KueharX/items/009687407fa0c542839a

しかし、curlでAPIたたいても、"detail":"Authentication credentials were not provided."のエラーが起こるので、http://localhost:8000/auth/jwt/create/
で直接ログインした後に、adminに行って、ログイン。

models.py
class UserAccountManager(BaseUserManager):
    def create_user(self, email, name, password=None, **extra_fields):
        if not email:
            raise ValueError('User must have an eamil address')

        email = self.normalize_email(email)
        user = self.model(email=email, name=name, **extra_fields)

        user.set_password(password)
        user.save()

        return user #'NoneType' object has no attribute 'is_active'

    def create_superuser(self, email, name, password, **extra_fields):
        extra_fields.setdefault('is_staff', True)
        extra_fields.setdefault('is_superuser', True)

        if extra_fields.get('is_staff') is not True:
            raise ValueError('Superuser must have true value of is_staff')

        if extra_fields.get('is_superuser') is not True:
            raise ValueError('Superuser must have true value of is_superuser')

        return self.create_user(email, name, password, **extra_fields)
return self.create_user(email, name, password, **extra_fields)
を
return self.create_user(self,email, name, password, **extra_fields)
にしないように注意。コピペしてやるとやりがちなので。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0