私は、製品カタログをアプリケーションのクライアントに返すためのAPIを構築する必要があるアプリケーションで作業しています。 (Product
からinheritated)共通フィールドProductAとProductBが互いに非常に異なっている両方のモデルを除き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(...)
.
.
.
。 私がしたいのは、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にアクセスするための可能な方法を追加しました。繰り返しますが、詳細がなくても、あなたが必要とするものを言うのは難しいです。 –