我正在一個應用程序中,我需要構建一個API以將產品目錄返回給應用程序的客戶端,這就是我的模型的外觀。DRF:根據字段值動態選擇串行器類
class Category(models.Model):
name = models.IntegerField(...)
description = models.CharField(...)
category_type = models.PositiveIntegerField(...)
.
.
.
class Product(models.Model):
code = models.IntegerField(...)
category = models.ForeignKey(Category, ..)
.
# Common product fields
.
class ProductA(Product):
product_a_field = models.IntegerField(..)
.
.
.
class ProductB(Product):
product_b_field = models.IntegerField(...)
.
.
.
除公共字段(從Product
在繼承)兩個模型產品A產品B與從彼此非常不同。 我想要做的是根據Category.category_type
字段的值向客戶端發送一組不同的產品。
我想簡化我的類別串行爲:
class CategorySerializer(serializers.ModelSerializer):
.
def __init__(self, *args, **kwargs):
#
# Some code to select the product Serializer
#
products = ProductSerializer()
class Meta:
model = Category
fields = ('name', 'description', 'category_type', 'products')
有什麼辦法來實現這一目標?我使用Python3,Django 1.10和DRF 3.6。
增加了一個可能的方式來訪問category_type 。再次,沒有更多的細節,很難說你需要什麼 –