Передача контекста от сериализатора к сериализатору

Как передать контекст от одного сериализатора к другому

like sub_variant = SubVariantSerializer(

source='subvariant_set', many=True, context={"variant_id": ?} # здесь я хочу передать variant_id

)

Я знаю serializer.SerializerMethodField(), но не хочу использовать его здесь. Пожалуйста, подскажите, возможно ли передать контекстный сериализатор в сериализатор в приведенном ниже коде? Или как я могу передать variant_id в дальнейшем сериализаторе

МОЙ КОД:

# MODELS 
class Variant(models.Model):
    variant_id = models.AutoField(primary_key=True)
    category_id = models.ManyToManyField(Category)
    variant_name = models.CharField(max_length=100)

class SubVariant(models.Model):
    sub_variant_id = models.AutoField(primary_key=True)
    variant_id = models.ManyToManyField(Variant)
    sub_variant_name = models.CharField(max_length=100)


# SERIALZIER
class SubVariantSerializer(serializers.ModelSerializer):
    new_field = serializer.SerializerMethodField()
    
    class Meta:
        model = SubVariant
        fields = "__all__"

    def get_new_field(self, obj):
        print(self.context['variant_id'])          # I want to get variant_id here
        return self.context['variant_id']

class VariantServiceSerializer(serializers.ModelSerializer):
        sub_variant = SubVariantSerializer(
                        source='subvariant_set', many=True, 
                        context={
                              "variant_id": ?? variant_id ??
                            })
    class Meta:
        model = Variant
        fields = "__all__"
Вернуться на верх