【问题标题】:Django Serialize a field from a different modelDjango序列化来自不同模型的字段
【发布时间】:2022-01-19 09:41:27
【问题描述】:

我有 3 个这样的模型:

class Category(ClassModelo):
    description = models.CharField(
    max_length=100,
    unique=True
)
class SubCategory(ClassModelo):
    pk_category = models.ForeignKey(Category, on_delete=models.CASCADE)
    description = models.CharField(
    max_length=100,
)
class Product(ClassModelo):
    code = models.CharField(
    description = models.CharField(max_length=200)
    pk_subcategory = models.ForeignKey(SubCategory, on_delete=models.CASCADE
)

我想序列化类别模型中的字段描述,我尝试使用以下代码但它不起作用(category = serializers.ReadOnlyField(source='pk_subcategory__pk_category_description'):

class ProductsSerializer(serializers.ModelSerializer):
    subcategory = serializers.ReadOnlyField(
        source='pk_subcategory.description')
    category = serializers.ReadOnlyField(source='pk_subcategory__pk_category_description')

    class Meta: 
        model = Product
        fields = ("id", "description", "category", "subcategory")

【问题讨论】:

    标签: django serialization


    【解决方案1】:

    source 参数中使用 dotted 表示法。所以应该是

    pk_subcategory.pk_category.description 而不是pk_subcategory__pk_category_description

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-24
      • 2019-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多