2016-06-07 6 views
1

Je rencontre des problèmes avec le sérialiseur. J'appelle une méthode de publication que je veux appeler le sérialiseur. Aussi je veux avoir l'utilisateur envoyé au sérialiseur. ma méthode de publication est:appel sérialiseur dans le cadre de repos django

def post(self, request, *args, **kwargs): 
    serializer = ResourceListSerializer(context={'request': request}, data={}) 
    serializer.is_valid(raise_exception=True) 
    serializer.save(creator=request.user) 

mais il ne semble pas que les données soient dans le sérialiseur. Dans le sérialiseur, self.validated_data semble être vide. c'est le code sur le sérialiseur:

toute suggestion sur comment appeler le sérialiseur correctement?

+1

Vous passez explicitement un dict vide au sérialiseur. –

+0

@DanielRoseman est-ce la partie sur data = {}? Je pensais que le contexte avait toutes les informations nécessaires. –

Répondre

4

Passez data lors de l'instanciation de votre sérialiseur, et non context.

def post(self, request, *args, **kwargs): 
    serializer = ResourceListSerializer(data=request.data) 
    serializer.is_valid(raise_exception=True) 
    serializer.save(creator=request.user) 

Vous avez seulement besoin de passer context supplémentaire contexte. À moins que vous ayez du code personnalisé dans votre sérialiseur qui accède à self.context, vous n'en avez pas besoin.