def update(self, instance, validated_data): for f in self.fields: if f != 'social_handles' and f != 'password': value = validated_data.get(f, getattr(instance, f)) setattr(instance, f, value) instance.save() instance.social_handles.all().delete() if 'social_handles' in validated_data: for handle in validated_data['social_handles']: h = SocialHandle(user=instance, username=handle['username'], site=handle['site']) h.save() return instance
def create(self, validated_data): kwargs = {} for f in self.fields: if f != 'social_handles' and f != 'password': value = validated_data.get(f, None) if value: kwargs[f] = value instance = User(**kwargs) instance.save() if 'social_handles' in validated_data: for handle in validated_data['social_handles']: h = SocialHandle(user=instance, username=handle['username'], site=handle['site']) h.save() return instance