我試圖使用CurrentUserDefault
類爲一個序列化程序。Django REST框架 - 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
此外,我試圖unicode的字典的鍵(u'request'
)也有同樣的運氣。
有沒有更好的方式將登錄的用戶傳遞給序列化程序?
我使用Django的REST框架3.0和Python 2.7.6
你先生救了我的聖誕節 –
這是非常有幫助的。不幸的是,如果你不提供額外的上下文,它會拋出的錯誤並不是非常有用。它拋出一個KeyError異常與消息u'request'。 – Emeka