2014-07-17 12 views
5

Fazladan argüman olarak geçmek olmasını talep gerektiren bir modeli yöntemine sahipDjango istirahat Çerçeve SerializerMethodField Geçiş Ekstra Tartışma

class BadgeSerializer(serializers.ModelSerializer): 

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

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

Ben bulamıyorum: Ben serileştirici ekstra argüman geçmesine nasıl bilmiyorum bu put aramak istiyorum Bu senaryo nywhere belgelenmiştir. Görüşlerimde bunu geçmek ve kullanmak için geçersiz kılmanın bir yolu var mı? Teşekkürler.

cevap

11

Sadece takip etmek için self.context['request'].user kullanarak yaptım.

def has_achieved(self, obj): 

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

Bu şekilde gidiyor :) –