master
分支中。类GraphDomainSerializer(serializers.ModelSerializer):
用户 = serializers.HiddenField(default=serializers.CurrentUserDefault)
类 CurrentUserDefault(object):
def set_context(self, serializer_field):
self.user = serializer_field.context['request'].user
def __call__(self):
return self.user
def __repr__(self):
return unicode_to_repr('%s()' % self.__class__.__name__)
def get_default(self):
"""
如果没有输入,则返回验证数据时使用的默认值
为该字段提供。
If a default has not been set for this field then this will simply
raise `SkipField`, indicating that no value should be set in the
validated data for this field.
"""
if self.default is empty or getattr(self.root, 'partial', False):
# No default, or this is a partial update.
raise SkipField()
if callable(self.default):
if hasattr(self.default, 'set_context'):
**self.default.set_context(self)**
return self.default()
return self.default
文件“/Users/lishijin/.pyenv/versions/3.7.2/lib/python3.7/site-packages/rest_framework/fields.py”,第490行,get_default
self.default.set_context(self)
类型错误:set_context() 缺少 1 个必需的位置参数:“serializer_field”
[24/Jun/2019 14:34:45] "POST /graphs/ HTTP/1.1" 500 21130
默认值应该是一个实例,而不是一个类: serializers.CurrentUserDefault()
如文档中所示
默认应该是一个实例,而不是一个类:
serializers.CurrentUserDefault()
如文档中所示
它解决了问题
默认值应该是一个实例,而不是一个类:
serializers.CurrentUserDefault()
如文档中所示
谢谢,你帮我解决了这个问题
最有用的评论
默认值应该是一个实例,而不是一个类:
serializers.CurrentUserDefault()
如文档中所示