1 回答
![?](http://img1.sycdn.imooc.com/54584f3100019e9702200220-100-100.jpg)
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']
添加回答
举报