Странное поведение ViewSet - Django Rest Framework
Я установил ModelViewSet
и ModelSerializer
для своей модели Dataset
, но заметил странное поведение. Когда я создаю новые экземпляры наборов данных, конечная точка не отражает новые добавления. Однако, если я распечатаю счетчик экземпляров наборов данных, я могу четко увидеть отражение новых наборов данных. Кто-нибудь уже сталкивался с подобным?
class DatasetViewSet(viewsets.ModelViewSet):
queryset = Dataset.objects.all().order_by('-created_at')
serializer_class = DatasetSerializer
def get_queryset(self):
# correctly prints the number of instances
print('new call: ', Dataset.objects.count())
# only prints the correct number when *one* new instance is added,
# afterwards new instances are not recognized
print('queryset: ', self.queryset.count())
return self.queryset
Первый оператор print в методе get_queryset
выше выведет правильное количество экземпляров (т.е. 5, 6, 7, 8, ..., поскольку я продолжаю добавлять новые экземпляры).
Второй оператор печати фиксирует только первый новый экземпляр и затем остается постоянным (т.е. 5, 6, 6, 6, 6, ... даже когда я продолжаю добавлять новые экземпляры).
Более того, в приведенном выше примере GET-запрос даст только 6 экземпляров, даже если я продолжу добавлять новые.
Что здесь происходит и как я могу начать отлаживать эту ситуацию?