Я новичок в Django и пытаюсь создать собственного пользователя. Однако я заметил, что мои данные просто вставляют необработанные данные в базу данных из моего запроса POST. Например, если я вставляю свои данные из терминала с помощью create superuser, мои данные в моей базе данных выглядят примерно так
id | password | last_login | email | staff | adm
1 | pbkdf2_sha256$180000$bGUp7u590CDf$wlecM+W0h7/6q/rZhKP73IMH13msn87I/RoK/VJewKk= | NULL | <bound method BaseUserManager.normalize_email of <class 'qssgg.models.UserManager'>> | 1 | 1 |
Однако, если я пытаюсь сохранить данные из моего запроса REST API POST, он сохраняет данные вроде этого
| id | password | last_login | email | staff | admin |
+----+----------+------------+-----------------------+-------+-------+
| 1 | hi | NULL | bobby000000@gmail.com | 0 | 0 |
Как видите, пароль не шифруется, а электронная почта отличается. Мне интересно, почему это происходит? Я следую руководству, и вот мой код:
models.py
class UserManager(BaseUserManager):
def create_user(self, email, password = None, isStaff=False, isAdmin=False):
if not email:
raise ValueError("User must have an email")
if not password:
raise ValueError("User must add password")
userObj = self.model(
email = self.normalize_email
)
userObj.set_password(password)
userObj.staff = isStaff
userObj.admin = isAdmin
userObj.save(using=self._db)
return userObj
def create_staffuser(self, email, password = None):
user = self.create_user(
email,
password = password,
isStaff = True
)
return user
def create_superuser(self, email, password = None):
user = self.create_user(
email,
password = password,
isStaff = True,
isAdmin= True,
)
return user
class User(AbstractBaseUser):
email = models.EmailField(max_length = 255, unique = True)
staff = models.BooleanField(default = False)
admin = models.BooleanField(default = False)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
objects = UserManager()
def __str__(self):
return self.email
@property
def isStaff(self):
return self.staff
@property
def isAdmin(self):
return self.admin
ursl.py
from .views import UserViewSet
router.register('api/registerUser', UserViewSet, 'registerUsers')
seralizer.py
# qssgg Seralizer
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'
И мой запрос: http://localhost:8000/api/registerUsers/
Любая помощь будет принята с благодарностью. Спасибо!