Django: never_cache не работает, он все еще показывает те же данные при нажатии кнопки "Назад" в браузере

У меня есть представление create, которое используется для создания объекта типа Course(model). Я использую декоратор never_cache, чтобы перезагружать страницу с сервера каждый раз, когда я ее использую. Теперь, если я создаю курс, он добавляется в базу данных Course, теперь, если я нажимаю кнопку назад в браузере, он все еще показывает мне данные с названием курса, которые я написал, что позволяет мне повторно отправить те же данные, как я могу предотвратить это? (я могу предотвратить сохранение одних и тех же данных дважды, переопределив метод сохранения, но я хочу предотвратить возврат пользователя к форме, в которой он ввел данные).

@method_decorator(never_cache, name='dispatch')
class CourseView(CreateView):
    model = Course
    template_name = 'teacher/course.html'
    fields = ['name', 'year']
    def get_context_data(self, **kwargs):
        kwargs['course_list'] = self.model.objects.all().order_by('name','year')
        return super().get_context_data(**kwargs)

    def form_valid(self, form):
        messages.success(self.request, 'Course added successfully.') 
        return super().form_valid(form)

    def get_success_url(self):
        return self.request.GET.get(key='next', default=reverse('teacher:course'))

never_cache работает нормально для запросов в будущем. если вы откроете CourseView снова, вы получите новые данные.

Не забывайте: При навигации по истории браузера он восстанавливает страницы, используя данные, кэшированные в состоянии истории браузера (запросы в прошлом). Если вы действительно хотите изменить результат нажатия кнопки "Назад" в браузере - вы должны взаимодействовать с состоянием истории браузера.

Вернуться на верх