Передача контекста от сериализатора к сериализатору
Как передать контекст от одного сериализатора к другому
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__"