2014-07-17 22 views
5

Ho un metodo di modello che richiede all'utente di richiesta di essere passare come argomento in più:Django Resto quadro SerializerMethodField Passo argomento extra

Modello Metodo:

def has_achieved(self, user): 
    return AwardLog.objects.filter(user=user, badge=self).count() > 0 

Utilizzando il resto quadro Django voglio chiamare questo put non sanno come passare nell'argomento extra dal serializzatore:

class BadgeSerializer(serializers.ModelSerializer): 

    achieved = serializers.SerializerMethodField(source='has_achieved(request.user???)') 

    class Meta: 
     model = Badge 
     fields = ("name", "achieved") 

non riesco a trovare un dove questo scenario è stato documentato. c'è un metodo nelle mie opinioni che potrei scavalcare per passare questo e usarlo? Grazie.

risposta

11

Proprio al follow-up ho Thi utilizzando self.context['request'].user es.

def has_achieved(self, obj): 

    return obj.has_achieved(self.context['request'].user) 
+0

Questa è la strada da percorrere :) –

Problemi correlati