当相关表实际上是空的时,Djangorestframwork如何显示数据?

2024-09-27 00:21:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个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)
    ...

出于某些原因,我需要创建一个不同领域的新酒店模型。所以我把这个添加到我的models.py中:

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

最终我想用DRF访问我的新酒店模型。这是我的密码:

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也没有数据

有人能给我解释一下吗? 谢谢


Tags: name模型selfdefaultcitylangobjectsmodels

热门问题