Django 超级函数不会将变量添加到 class

Django super function does't add variable to class

我正在尝试使用 init 在 MozSerializer class 中创建新变量以获取从另一个函数传递的数据。这是代码:

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()

我的目标是将此 'modelid' 从另一个函数传递给序列化程序(第 7 行...queryset=MODELID...)。

正确的方法是在 __init__ 中添加字段 dynamically:

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()