2016-05-25 4 views
1

У меня есть шаблон, который имеет печать переменных из Контекста, который я создал в представлении. Он работает отлично в течение нескольких месяцев.Изменения в Django Контекст, не отображающийся в шаблоне

Я добавил некоторые переменные в контекст, но они не будут отображаться в шаблоне.

Когда я запускаю проект Django локально, если я удаляю запятую между двумя переменными в контексте, я получаю ошибку, как и ожидалось. Затем, если я добавлю запятую назад, новые переменные будут в шаблоне. Но когда я выдвигаю изменения в Openshift, новые переменные никогда не появляются. Фактически, если я удаляю некоторые из существующих переменных, шаблон все равно отображается так, как если бы они были там.

Я очистил кэш в своем браузере. Не исправил. Я не использую кеширование в Django (поиск «кеша» в settings.py не показывает хитов).

Очевидно, что-то что-то кеширует где-то, но я не могу понять, где. Поскольку мои изменения иногда появляются в моем браузере при запуске локально, я уверен, что в коде python нет синтаксических ошибок. Вот контекст список:

 context = { 
     'slug': 'Admin Home .' 
     , 'players': len(players) 
     , 'paid': totalPaid 
     , 'unpaid': len(unpaid) 
     , 'monday': monday 
     , 'tuesday': tuesday 
     , 'wednesday': wednesday 
     , 'donations': donations 
     , 'ssmall': ssmall 
     , 'smedium': smedium 
     , 'slarge': slarge 
     , 'sxl': sxl 
     , 'sxxl': sxxl 
     , 'page': page 
    } 

Вот пример одной из переменных не отображается в шаблоне:

Large: {{slarge}} 

И переменная slarge имеет значение. Я проверил его, запустив некоторый код в оболочке, и, как я уже сказал, иногда он появляется на отображаемой странице.

Я также изменил заголовок страницы в разделе главы, и эти изменения появляются также иногда, когда переменная правильно заполняется на странице.

Из того, что я читал, это похоже на Apache и/или mod_wsgi, которые использует Openshift, - это кеширование чего-либо, но я не знаю, как это исправить. Я перезапустил приложение в Openshift, но это не исправило его.

Я ценю любую помощь.

+0

На стандартном сервере вам придется перезапустить Apache, так как вы используете OpenShift, вам, вероятно, потребуется выполнить команду 'rhc app-restart', см. Https://developers.openshift.com/managing-your-applications/ common-rhc-commands.html – mastazi

+0

Спасибо, но это не решило проблему. – ukalumni

ответ

0

Обычно HTML-код не кэшируется при выполнении HTTP-запроса. То, что ваш навигатор будет кэшировать, это CSS, javascript, изображения и т. Д. При запросе веб-страницы навигатор всегда отображает полученный HTML-код.

Я бег сайта с Nginx и Джанго, и опытом, который я могу вам сказать, что большинство раз при внесении изменений в в приложениях (Python файлы), необходимо рестарта Джанго. (Это может быть настройка в django)

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

Django - это ваш фреймворк, а apache - ваш сервер. Чтобы ваш сайт работал, должно быть два демона: один для apache и один для django.

Перезапуск apache не перезапустит код ваших приложений django. Что вам нужно сделать, это перезапустить демон, который запускает вашу инфраструктуру django.

Ваш код работает, как ожидалось при запуске его на месте, потому что вы перезагрузки вашей базы Джанго каждый раз, когда вы используете команду python manage.py runserver..

+0

Ваше описание изменений загрузки Django сразу было моим опытом. , , до этого момента. Когда я запускаю его локально, он не показывает изменения, если я не намеренно делаю ошибку кодирования в представлении. Затем, после исправления ошибки, изменение будет отображаться в одном браузере, но не в другом. Я посмотрю, смогу ли я найти способ перезапустить демона django, но Openshift не дает большого контроля над такими вещами. Я перезапустил веб-приложение из консоли Openshift, и это не исправляет его. – ukalumni

0

я уже упоминал, это мой первый проект Django.

Я вносил все эти изменения в раздел получения класса, а не в пост-раздел, и он должен был быть в разделе сообщений.

Смежные вопросы