如何在序列化程序 Django 中获取外键值?

how to get foreign key value in serializer djago?

我正在尝试获取外键的值:

class OrderItem(models.Model):
   user = models.ForeignKey(settings.AUTH_USER_MODEL,
                         on_delete=models.CASCADE)
   ordered = models.BooleanField(default=False)
   item = models.ForeignKey(Item, on_delete=models.CASCADE)
   quantity = models.IntegerField(default=1)

这是物品型号:

class Item(models.Model):
   title = models.CharField(max_length=100)
   price = models.FloatField()
   bargainprice = models.FloatField(default=0)
   discount_price = models.FloatField(blank=True, null=True)
   category = models.CharField(choices=CATEGORY_CHOICES, max_length=2)
   label = models.CharField(choices=LABEL_CHOICES, max_length=1)
   slug = models.SlugField()
   description = models.TextField()
   image = models.ImageField()

我的 serializers.py:

class cartItemSerializer(serializers.ModelSerializer):
   title = serializers.CharField(source='item.title', read_only=True)
   itemimage = serializers.ImageField(source='item.image', read_only=True)
   price = serializers.FloatField(source='item.price', read_only=True)

   class Meta:
      model=OrderItem
      fields = (title, itemimage, price)

当我尝试这样做时出现错误:

name 'title' is not defined

有人可以告诉我做错了什么吗?

字段的名称是 strings,而不是字段:

class cartItemSerializer(serializers.ModelSerializer):
    # …
    
    class Meta:
        model=OrderItem
        fields = <strong>('title', 'itemimage', 'price')</strong>  # 🖘 strings