У меня проблема, когда мой производственный сервер отображает неверные результаты для запроса (для создания и удаления были правильно учтены, но не обновлены существующие поля, которые повлияли на результаты). Я предположил, что это проблема с сопоставлением дат и провела несколько часов отладки, поскольку я не смог воспроизвести ошибку на dev. В конце концов, я перезапустил пулемет, и проблема исчезла. Кажется, что postgresql или django кэшировали результаты запроса. Я не настраивал кеширование, поэтому не понимаю, почему это происходит.Проблемы с кешированием с django или postgresql
У меня есть 2 вопроса пожалуйста:
- Кто делает кэширование?
- Как отключить его? - Мне нужно QuerySet , чтобы оценить каждый раз, когда она называется
Setup
Python 2.7
Джанго 1,7
PostgreSQL
Ubuntu
views.py Экстракт
class EventList(ListView, FilterMixin):
model = Listing
queryset = Listing.events.order_by('-from_date',)
models.py Экстракты
class Listing(models.Model):
title = models.CharField(max_length=200, null=True)
to_date = models.DateTimeField(null=True, blank=True)
from_date = models.DateTimeField(null=True, blank=True)
events = EventManager()
event = models.ForeignKey('Event', related_name='listings', null=True, blank=True, on_delete=models.SET_NULL)
class EventManager(models.Manager):
def get_queryset(self):
now = arrow.now()
# Only listings which have events ending after today
qry = super(EventManager, self).get_queryset().filter(event__isnull=False).select_related('event').filter(to_date__gte=now.datetime)
return qry
Пожалуйста, ваши модели и просматривать код. – Brandon
Это вряд ли будет кэшировать или что-то делать с базой данных; скорее всего, будет запросом, оцененным на уровне класса или модуля. Но мы не можем помочь, не видя кода. –
@ DanielRoseman См. Обновленный вопрос. Проблема, с которой я сталкиваюсь, заключается в том, что когда листинг списывается, to_date устанавливается за 1 день до сегодняшнего дня, но набор запросов (тот, который в EventManager) продолжает возвращать его до перезапуска пушки. Спасибо за помощь – RunLoop