问题答案
from rest_framework import serializers
 
class CommentSerializer(serializers.Serializer):
    email = serializers.EmailField()
    content = serializers.CharField(max_length=200)
    created = serializers.DateTimeField()
 
    def restore_object(self, attrs, instance=None):
        """
        Given a dictionary of deserialized field values, either update
        an existing model instance, or create a new model instance.
        """
        if instance is not None:
            instance.email = attrs.get('email', instance.email)
            instance.content = attrs.get('content', instance.content)
            instance.created = attrs.get('created', instance.created)
            return instance
        return Comment(**attrs)
比如,这其中的attrs是?
标签: python
答案
这是python的参数列表,两个星号是可变参数。
restore_object接收到的attrs参数是dict类型,传递到Comment函数的时候前面加两个星号转成可变参数列表。
比如
 
attrs = {'a':1, 'b':2}
Comment函数实际的调用会变成:
 
Comment(a=1, b=2)
参考:http://n3xtchen.github.io/n3xtchen/python/2014/08/08/python---args-and-kwargs/
举一反三