Sto provando a utilizzare la classe CurrentUserDefault
per un serializzatore.Django REST Framework - CurrentUserDefault use
user = serializers.HiddenField(default=serializers.CurrentUserDefault())
la documentazione dice:
Per poter utilizzare questo, la 'richiesta' deve essere stato fornito come parte del dizionario contesto quando si crea un'istanza della serializzatore.
Non sono sicuro di come creare il serializzatore. Nella visualizzazione creo tutti i serializzatori con:
serializer = NewModelSerializer(data=request.data)
Così ho tentato:
context = dict(request.data)
context['request'] = request
serializer = NewModelSerializer(data=context)
e
context['request'] = {'user': request.user}
E in entrambi i casi l'errore è lo stesso:
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
Inoltre ho provato a unicode il chiavi del dizionario (u'request'
) con la stessa fortuna.
C'è un modo migliore per passare l'utente registrato a un serializzatore?
sto usando Django REST Framework 3.0 e Python 2.7.6
Lei ha salvato il mio Natale –
Questo è molto utile. E sfortunatamente l'errore che genera se non si fornisce il contesto in più non è affatto d'aiuto. Genera un'eccezione KeyError con il messaggio "richiesta". – Emeka