问题相关代码
serializers.py
def create(self, validated_data):
del validated_data['code']
user=User(**validated_data)
#print(user)
user.set_passwrod(user.passwrod) #密码加密
user.save()
return user
models.py
from django.contrib.auth.models import AbstractUser
from django.db import models
# Create your models here.
class UserProfile(AbstractUser):
"""
用户表,新增字段如下
"""
GENDER_CHOICES = (
("male", u"男"),
("female", u"女")
)
# 用户注册时我们要新建user_profile 但是我们只有手机号
name = models.CharField(max_length=30, null=True, blank=True, verbose_name="姓名")
# 保存出生日期,年龄通过出生日期推算
birthday = models.DateField(null=True, blank=True, verbose_name="出生年月")
gender = models.CharField(max_length=6, choices=GENDER_CHOICES, default="female", verbose_name="性别")
# mobile = models.CharField(null=True, blank=True, max_length=11, verbose_name="电话")
mobile = models.CharField(null=True, blank=True, max_length=11, verbose_name="电话", help_text="电话号码")
email = models.EmailField(max_length=100, null=True, blank=True, verbose_name="邮箱")
class Meta:
verbose_name = "用户信息"
verbose_name_plural = verbose_name
def __str__(self):
return self.username
views.py
class regisview(APIView):
def post(self,request):
seriali=Userproserializer(data=request.data)
seriali.is_valid(raise_exception=True)
seriali.save()
return Response(seriali.validated_data,status=201)
运行结果及报错内容
File "/home/xinyu/djangopro/bookshop/apps/users/serializers.py", line 67, in create
user.set_passwrod(user.passwrod) #密码加密
AttributeError: 'UserProfile' object has no attribute 'set_passwrod'