Próbuję użyć klasy CurrentUserDefault
dla jednego serializera.Django REST Framework - CurrentUserDefault use
user = serializers.HiddenField(default=serializers.CurrentUserDefault())
docs mówi:
W celu wykorzystania tego, „żądanie” muszą być dostarczone jako część słownika kontekstu podczas uruchamianiu tego serializatora.
Nie wiem, jak utworzyć serializer. W widoku tworzę wszystkie serializers z:
serializer = NewModelSerializer(data=request.data)
Więc spróbowaliśmy:
context = dict(request.data)
context['request'] = request
serializer = NewModelSerializer(data=context)
i
context['request'] = {'user': request.user}
I w obu przypadkach błąd jest taki sam:
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
Próbowałem również unicode the klucze słownika (u'request'
) z tym samym szczęściem.
Czy istnieje lepszy sposób przekazania zalogowanego użytkownika do serializera?
używam REST Django Framework 3.0 i Python 2.7.6
Ty uratowałeś moje święta –
Jest to bardzo pomocne. I niestety błąd, który rzuca, jeśli nie dostarczasz dodatkowego kontekstu, nie jest bardzo pomocny. Zgłasza wyjątek KeyError z komunikatem u'request ". – Emeka