django-rest-framwork如何在相对表实际上为空时显示数据?

时间:2019-03-28 20:23:38

标签: python django django-rest-framework

我正在研究具有以下模型的Django项目:


class PlaceQuerySet(models.QuerySet):
    def filter_by_province(self, province, lang='se'):
        query = self.filter(province=province, is_published=True)
        .annotate(thumbnail_uuid=models.F('image_album__default__uuid'))
        .prefetch_related()
        if lang == 'se':
            return query.annotate(city_name=models.F('city__alt_names__name'),)
        else:
            return query.annotate(city_name=models.F('city__name'))        
class BasePlaceModel(models.Model):
    class Meta:
        abstract = True

    objects = PlaceQuerySet.as_manager()
    name = models.CharField(max_length=50))
    ...
class Hotel(BasePlace):
    popularity = models.PositiveSmallIntegerField(default=0)
    ...

由于某些原因,我需要创建一个具有不同字段的新酒店模型。所以我将其添加到我的模型中。

class HotelModel(BasePlace):
    new_popularity = models.PositiveSmallIntegerField(default=1)
    ...

最终,我想使用DRF访问新的 HotelModel 。这是我的代码:

class NewHotelViewSet(viewsets.ModelViewSet):

    serializer_class = HotelSerializer
    permission_classes = (IsAuthenticatedOrReadOnly, )
    queryset = HotelModel.objects.all()


class HotelSerializer(serializers.ModelSerializer):
    class Meta:
        model = HotelModel
        fields = (
            'id', 'blahblah'
        )

奇怪的部分是当我查询NewHotelViewSet时,它在新模型为空的情况下使用数据进行响应。执行 HotelModel.objects.all()会显示相同的结果。我什至检查了Postgres,但没有数据。

有人可以向我解释吗? 谢谢。

0 个答案:

没有答案