问题描述
下面是用户及其管理者的代码。在这里,我正在创建自定义用户模型。
class UserManager(BaseUserManager):
def create_user(self,username,email,password=None):
if username is None:
raise TypeError('Users should have a Username')
if email is None:
raise TypeError('Users should have a Email')
user = self.model(username=username,email=self.normalize_email)
user.set_password(password)
user.save()
return user
def create_superuser(self,password=None):
if password is None:
raise TypeError('Password should not be none')
user = self.create_user(username,password)
user.save()
return user
class User(AbstractBaseUser,PermissionsMixin):
username = models.CharField(max_length=255,unique=True,db_index=True)
email = models.EmailField(max_length=255,db_index=True)
USERNAME_FIELD = 'email'
required_FIELDS = ['username']
objects= UserManager()
def __str__(self):
return self.email
下面是serializers.py文件。
class RegisterSerializers(serializers.ModelSerializer):
password = serializers.CharField(max_length=68,min_length=6,write_only=True)
class Meta:
model = User
fields = ['email','username','password']
def validate(self,attrs):
email = attrs.get('email','')
username = attrs.get('username','')
if not username.isalnum():
raise serializers.ValidationError('The username should only contain alphanumeric character')
return attrs
def create(self,validated_data):
return User.objects.create_user(**validated_data)
这是views.py中的POST请求
class RegisterView(generics.GenericAPIView):
serializer_class = RegisterSerializers
def post(self,request):
user = request.data
serializer = self.serializer_class(data=user)
serializer.is_valid(raise_exception=True)
serializer.save()
user_data = serializer.data
return Response(user_data,status=status.HTTP_201_CREATED)
我是drf的新手。请帮助我,谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)