Я пытаюсь использовать класс CurrentUserDefault
для одного сериализатора.Django REST Framework - использование CurrentUserDefault
user = serializers.HiddenField(default=serializers.CurrentUserDefault())
Документы говорят:
Для того, чтобы использовать это, должно быть, при условии, что «запрос» как часть контекста словаря при инстанцировании сериалайзера.
Я не уверен, как создать сериализатор. На представлении я создаю все сериализаторы с:
serializer = NewModelSerializer(data=request.data)
Так я покушений:
context = dict(request.data)
context['request'] = request
serializer = NewModelSerializer(data=context)
и
context['request'] = {'user': request.user}
И в обоих случаях ошибка такая же:
Exception Type: KeyError
Exception Value: 'request'
on:
/Users/Alfonso/virtualenvs/sports/lib/python2.7/site-packages/rest_framework/fields.py in set_context
self.user = serializer_field.context['request'].user
Также я попытался выполнить юникод ключи словаря (u'request'
) с такой же удачей.
Есть ли лучший способ передать зарегистрированного пользователя в сериализатор?
Я использую Django REST Framework 3.0 и Python 2.7.6
Вы сэр сохранили мое Рождество –
Это очень полезно. И, к сожалению, ошибка, которую она бросает, если вы не предоставляете дополнительный контекст, совсем не очень помогает. Он выдает исключение KeyError с сообщением u'request '. – Emeka