master
платформы Django REST.класс GraphDomainSerializer (сериализаторы.ModelSerializer):
user = serializers.HiddenField (по умолчанию = serializers.CurrentUserDefault)
класс CurrentUserDefault (объект):
def set_context (self, serializer_field):
self.user = serializer_field.context ['запрос']. пользователь
def __call__(self):
return self.user
def __repr__(self):
return unicode_to_repr('%s()' % self.__class__.__name__)
def get_default (сам):
"" "
Вернуть значение по умолчанию, которое будет использоваться при проверке данных, если нет ввода
предоставляется для этого поля.
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 (сам)
TypeError: set_context () отсутствует 1 обязательный позиционный аргумент: 'serializer_field'
[24 / июн / 2019 14:34:45] "POST / graphs / HTTP / 1.1" 500 21130
Значением по умолчанию должен быть экземпляр, а не класс: serializers.CurrentUserDefault()
как показано в документации.
Значением по умолчанию должен быть экземпляр, а не класс:
serializers.CurrentUserDefault()
как показано в документации
it solved the problem
Значением по умолчанию должен быть экземпляр, а не класс:
serializers.CurrentUserDefault()
как показано в документации.
Спасибо , Вы помогли мне решить эту проблему
Самый полезный комментарий
Значением по умолчанию должен быть экземпляр, а не класс:
serializers.CurrentUserDefault()
как показано в документации.