DRF自定义注册中的user_type额外字段无法保存
自定义用户注册实现(基于dj_rest_auth)
我基于dj_rest_auth的RegisterSerializer创建了自定义序列化器,添加了额外的user_type字段,并通过重写get_cleaned_data方法将该字段纳入清洗后的数据,同时配置了对应的自定义注册视图。以下是具体代码:
自定义注册序列化器
class CustomRegisterSerializer(RegisterSerializer): user_type = serializers.ChoiceField(choices=[('seeker', 'Seeker'), ('recruiter', 'Recruiter')]) class Meta: model = User fields = "__all__" def get_cleaned_data(self): data = super().get_cleaned_data() data['user_type'] = self.validated_data.get('user_type', '') return data
用户Profile模型
class Profile(models.Model): class Type(models.TextChoices): seeker = "Seeker" recruiter = "Recruiter" base_type = Type.seeker user = models.OneToOneField(User, on_delete=models.CASCADE) user_type = models.CharField(choices=Type.choices, default=base_type, max_length=20) class Meta: verbose_name = "Profile" verbose_name_plural = "Profiles" def __str__(self): return self.user.username
自定义注册视图
class CustomRegisterView(RegisterView): serializer_class = CustomRegisterSerializer
内容的提问来源于stack exchange,提问作者Vicente Antonio G. Reyes
相关产品推荐
相关产品推荐

