Django休息框架,一次串行化多个字段

时间:2015-04-09 05:19:36

标签: django django-rest-framework

假设您要在序列化餐厅时包含5张图片和餐馆的总图像数。

您可以使用单独的方法查询每个字段的数据库, 但是在一种方法中使用QuerySet是有益的。

有没有办法在DRF中一次序列化多个字段?

1 个答案:

答案 0 :(得分:0)

如果所有这些都属于一个模型,那么构建一个简单的模型序列化器将会解决所有问题。举个例子:

# Model
class Restaurant(models.Model):
    @property
    def image_count(self):
        queryset = apps.get_model('app_label', 'Image')
        count = queryset.objects.filter(restaurant=self).count()
        return count

class Image(models.Model):
    restaurant = models.ForeignKey(Restaurant, related_name="image_set")
    image = models.ImageField()

Serializers.py

class RestaurantSerializer(serializers.ModelSerializer):
    class Meta:
        model = Restaurant
        fields = ['image_count', ]

@ Property允许序列化这样的东西,该方法也可以只使用相关的名称。

如果要进一步序列化Image对象,则必须阅读http://www.django-rest-framework.org/api-guide/relations/