Как django-rest-framwork отображает данные, в то время как таблица relavant на самом деле пуста?

#python #django #django-rest-framework

#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)
    ...

  

По некоторым причинам мне нужно создать новую модель отеля с другими полями. Итак, я добавляю это в свой models.py:

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

В конце концов, я хочу получить доступ к моей новой HotelModel с помощью 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, и в нем нет данных.

Кто-нибудь может мне это объяснить? Спасибо.

Комментарии:

1. пожалуйста, покажите полный class PlaceQuerySet

2. Отредактировано @BearBrown. Может ли это быть из-за аналогичного наименования? postgres показывает мне, что есть две таблицы: place_hotel и place_hotelmodel