Как получить значение поля 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__'