1,在serializer.save的时候要加入新的内容
save时,在request.data内容不够的情况下加入新的内容,
serializer.save(owner=request.user)
2,限制,报错
def multiple_of_ten(value): if value % 10 != 0: raise serializers.ValidationError('Not a multiple of ten') class GameRecord(serializers.Serializer): score = IntegerField(validators=[multiple_of_ten])
3,更新原有数据
serializer = CommentSerializer(comment, data={'content': u'foo bar'}, partial=True)
4,序列化套序列化
class UserSerializer(serializers.Serializer): email = serializers.EmailField() username = serializers.CharField(max_length=100) class CommentSerializer(serializers.Serializer): user = UserSerializer(required=False
) #required=False表示可以为空 #many=True 表示接受多个值为list.
content = serializers.CharField(max_length=200)
created = serializers.DateTimeField()
5,create
class UserSerializer(serializers.ModelSerializer): profile = ProfileSerializer() class Meta: model = User fields = ('username', 'email', 'profile') def create(self, validated_data): profile_data = validated_data.pop('profile') user = User.objects.create(**validated_data) Profile.objects.create(user=user, **profile_data) return user
6