Может ли кто-нибудь объяснить, почему переопределение get_queryset
и ссылка на запрос через self
полностью кэширует страницу? Мне нужно подождать 5 минут и более до того, как будут сделаны обновления на дисплее базы данных.Переопределение get_queryset приводит к кешированию головной боли в ListView, где данные остаются устаревшими
Я пытаюсь сохранить временное значение для каждого объекта и передать его в шаблон.
У меня все работает отлично и денди в примере 3, но на самом деле я не понимаю, что я сделал, чтобы заставить его работать, поэтому любое понимание было бы замечательным!
Пример 1: Тайники в течение нескольких минут, но r.css = 'а' работают нормально
class AppointmentListView(ListView):
qs = Appointment.objects.prefetch_related('client', 'patients')
def get_queryset(self):
for r in self.qs:
r.css = 'abc' #<-passes temp value to template ok
return self.qs
Пример 2: Нет проблемы кэширования, но r.css = 'а' теперь не работает
Если я не включаю метод и просто вызываю запрос автоматически, не происходит немедленного отображения кеширования и базы данных, но мои временные данные не достигают шаблона. класса AppointmentListView (ListView):
queryset = Appointment.objects.prefetch_related('client','patients')
for r in queryset:
r.css = 'abc' #<- NOT passed to template
Пример 3: Нет проблемы кэширования и r.css = «а» работает отлично
Наконец, если я ставлю все в методе, все работает отлично - Темп данные достигает шаблона, и нет кеширования.
Отличный ответ, спасибо Дерек. –