Как отключить кеширование Django REST Framework?

Я только начинаю работать с django и DRF, и возникает проблема, похожая на ответы кеша DRF. Я имею в виду - я могу изменить объект, создать новый или удалить его - и DRF сохранит ответ, это ничего не изменится. Например, я создаю объект, но modelViewSet по-прежнему возвращает данные, в которых этот объект не представлен. Но если я напрямую запрашиваю у него объект - он показывает, что он создан. И так с любыми другими действиями. Я не могу найти тему о кешировании в DRF и, похоже, у меня нет промежуточного программного обеспечения django chaching, поэтому я понятия не имею, что происходит. Единственное, что помогает - перезапустить сервер (я использую dev-сервер по умолчанию).

Еще одна вещь - все данные в порядке, когда они отображаются представлениями django, а не представлениями DRF.

Вот один из сериализаторов / modelViewSets, которые я использую. Это максимально просто. А также - я не использую бэкенды кеширования django. По крайней мере - у меня в настройках их нет.

class WorkOperationSerializer(serializers.ModelSerializer):
    class Meta:
        model = WorkOperation


class WorkOperationAPIView(viewsets.ModelViewSet):
    serializer_class = WorkOperationSerializer
    queryset = WorkOperation.objects.all()

    def get_queryset(self):
        return self.queryset

person GeraldIstar    schedule 21.09.2015    source источник
comment
В DRF такого встроенного нет, вы уверены, что на стороне DRF появляется кеширование? Может быть, есть что-то еще в django, которое выполняет этот кеш, или это в вашем браузере?   -  person GwynBleidD    schedule 21.09.2015
comment
Что ж, похоже, это не браузер - другие люди тоже видят те же результаты. И как я уже сказал - у меня нет промежуточного программного обеспечения для кеширования. Django использует промежуточное ПО для кеширования, верно?   -  person GeraldIstar    schedule 21.09.2015
comment
Можете ли вы опубликовать представление и сериализатор, на которые влияет этот кеш, а также какие серверные части кеша вы используете в проекте django?   -  person GwynBleidD    schedule 21.09.2015


Ответы (1)


Вы можете прочитать здесь о наборе запросов django. кеширование. Лучший совет: повторно запустите метод .all(), чтобы получить свежие результаты. Использование object.property может дать вам кешированные результаты.

person allo    schedule 21.09.2015
comment
Ах, позор мне. Спасибо, мне просто нужно использовать WorkOperation.objects.all() insted of return self.queryset. Моя невнимательность. - person GeraldIstar; 21.09.2015