1 回答

TA貢獻1851條經驗 獲得超4個贊
在您的商店模型中property照常定義
class Store(models.Model):
......
@property
def order_count(self):
return Order.objects.filter(product__store=self, delivered=True).count()
class Product(models.Model):
store = models.ForeignKey(Store, ...)
class Order(models.Model):
product = models.ForeignKey(Product ...)
delivered = models.BooleanField()
然后在序列化器中,您有兩種方法將該order_count屬性包含在序列化器中 -
定義一個SerializerMethodField在StoreSerializer
class StoreSerializer(serializers.ModelSerializer):
order_count = serilizers.SerializerMethodField()
def get_order_count(self, instance):
return instance.order_count # the property in store object
class Meta:
model = Store
fields = ['other', 'fields', 'in', 'store', 'model', 'order_count']
聲明order_count為ReadOnlyField您的StoreSerializer
class StoreSerializer(serializers.ModelSerializer):
order_count = serilizers.ReadOnlyField()
class Meta:
model = Store
fields = ['other', 'fields', 'in', 'store', 'model', 'order_count']
添加回答
舉報