1

initを使用して MozSerializer クラスで新しい変数を作成し、別の関数から渡されたデータを取得しようとしています。コードは次のとおりです。

class MozSerializer(serializers.Serializer):

    def __init__(self, modelid, data=None):        
        self.modelid = modelid        
        super(MozSerializer, self).__init__(modelid=self.modelid)

    keyword = serializers.PrimaryKeyRelatedField(queryset=modelid.objects.all())
    pda = serializers.FloatField()
    upa = serializers.FloatField()

私の目標は、この「モデル ID」を別の関数からシリアライザー (7 行目...クエリセット = MODELID...) に渡すことです。

4

1 に答える 1

1

これを行う正しい方法は、フィールドを動的に追加することです__init__:

class MozSerializer(serializers.Serializer):

    def __init__(self, *args, **kwargs):        
        modelid = kwargs.pop('modelid')
        self.fields['keyword'] = serializers.PrimaryKeyRelatedField(\
                                             queryset=modelid.objects.all())       
        super(MozSerializer, self).__init__(*args, **kwargs)

    pda = serializers.FloatField()
    upa = serializers.FloatField()
于 2015-10-11T10:46:51.193 に答える