Как получить значение поля foreignkey в django?

У меня есть две модели, приведенные ниже:

class Color(models.Model):
    colorName = models.CharField(max_length=200, null=True, blank=True)
    # _id = models.AutoField(primary_key=True, editable=False)

    def __str__(self):
        return str(self.colorName)


class Variant(models.Model):
    product = models.ForeignKey(Product, on_delete= models.CASCADE, null=True,blank=True)
    color = models.ForeignKey(Color, on_delete=models.CASCADE, null=True, blank=True)
    image = models.ImageField(null=True, blank=True)
    def __str__(self):
        return str(self.product)

views.py

@api_view(['GET'])
def getProduct(request, pk):
    product = Product.objects.get(_id=pk)
    variants = Variant.objects.filter(product=product)
    productserializer = ProductSerializer(product, many=False)
    variantserializer = VariantSerializer(variants,many=True)
    data = 
   {'product_details':productserializer.data,'product_variants':variantserializer.data}
    print(data)
    return Response(data)

Здесь поле color возвращает id поля colorName, но мне нужно значение поля colorName Как это решить?

serializers

# replace VariantSerializer with below code

class VariantSerializer(serializers.ModelSerializer):
    product = ProductSerializer(many=True, read_only=True)
    color = ColorSerializer(many=True, read_only=True)

    class Meta:
        model = Variant
        fields = '__all__'

создать ColorSerializer если нет,

class ColorSerializer(serializers.ModelSerializer):
    class Meta:
        model = Color
        fields = '__all__'

:)

Вернуться на верх