Django Rest Framework allauth在注册期间将PrimaryKeyRelated字段保存给用户
我已经使用dj rest auth和allauth设置了一个CustomRegisterSerializer。我似乎无法挽救无数的关系。请有人告诉我哪里出了问题 序列化程序.pyDjango Rest Framework allauth在注册期间将PrimaryKeyRelated字段保存给用户,django,django-rest-framework,django-allauth,django-rest-auth,Django,Django Rest Framework,Django Allauth,Django Rest Auth,我已经使用dj rest auth和allauth设置了一个CustomRegisterSerializer。我似乎无法挽救无数的关系。请有人告诉我哪里出了问题 序列化程序.py class CustomRegisterSerializer(RegisterSerializer): dbs_number = serializers.CharField(max_length=13, required=True) hospitals = serializers.PrimaryKeyR
class CustomRegisterSerializer(RegisterSerializer):
dbs_number = serializers.CharField(max_length=13, required=True)
hospitals = serializers.PrimaryKeyRelatedField(many=True, queryset=HospitalListModel.objects.all())
area_to_work = serializers.PrimaryKeyRelatedField(many=True, queryset=AreaToWorkModel.objects.all())
def get_cleaned_date(self):
data_dict = super().get_cleaned_data()
data_dict['dbs_number'] = self.validated_data.get('dbs_number', '')
data_dict['hospitals'] = self.validated_data.get('hospitals', '')
data_dict['area_to_work'] = self.validated_data.get('area_to_work', '')
print('serializer :' + str(data_dict))
return data_dict
适配器.py
class CustomAccountAdapter(DefaultAccountAdapter):
def save_user(self, request, user, form, commit=False):
user = super().save_user(request, user, form, commit)
data = form.data
user.dbs_number = data['dbs_number']
user.save()
user.hospitals.add(*data['hospitals'])
user.area_to_work.set(*data['area_to_work'])
user.save()
return user