У меня была проблема с обновлением кэша браузера, и ответ Кена Кокрейна привел меня к решению.
Моя проблема была со страницей сведений о модели.После обновления записи, вернувшись на страницу с подробностями, браузер показал, что было в кеше - страница без обновлений.Это сосало большое время!Представьте себе замешательство пользователя после сохранения некоторых обновлений только для того, чтобы неправильно понять со страницы сведений о версии (кеш браузера), что обновления не были сохранены!Но они были сохранены, проблема заключалась в том, что браузер показывал кэшированную версию.
Решение Кена Кокрейна: добавление строки запроса с что-то уникальным.Это сработало для меня!Сначала я просто добавил timezone.now (), отформатированный для совместимости с URL-адресом, например? Utc = 2018-02-19_22.57.30 (в URL-адресах двоеточия переходят через порт, двоеточия путают URL-адрес - нельзя использовать двоеточия).
Строка формата Python: '% Y-% m-% d_% H.% M.% S'
Это решило мою проблему, но заставляло обновляться каждый раз, когда пользователь приходилвернуться на страницу подробного просмотра, даже если обновления не было.Затем мне пришло в голову: вместо использования timezone.now () используйте отметку времени последнего обновления строки модели.После обновления отметка времени последнего обновления будет позже предыдущей, поэтому браузер обновится.Если пользователь снова вернется без какого-либо обновления, отметка времени последнего обновления будет такой же, поэтому браузер сможет отобразить кэшированную страницу.
Итак, моя строка запроса имеет значение? Updated = 2018-02-19_22.57.30
Решение может использоваться при сохранении того же имени изображения, но при изменении файла изображения с использованием метки времени файловой системы файла изображения для строки запроса.Только когда изображение изменится, отметка времени будет другой, и браузер обновится.Если файл изображения совпадает, отметка времени будет такой же, поэтому браузер может показать кэшированную версию.