Переменная шаблона Django имеет неправильное значение / Javascript в HEAD не выполнен - PullRequest
0 голосов
/ 06 марта 2012

У меня есть шаблон Django base.html:

// inside the javascript
var this_page = "{{ this_page }}";

// inside the HTML part
{% ifnotequal this_page "home" %}
...Some HTML...
{% endifnotequal %}

Неверная часть внутри области JavaScript.На самом деле Firebug показывает мне на вкладке HTML:

var this_page = "home";

, но если я загляну в GET на вкладке Console, Firebug показывает:

var this_page = "about";

, что было бы правильно, но отладкапоказывает, что this_page установлен на home.Я также попробовал:

{% ifnotequal this_page "home" %}
do some javascript
{% endifnotequal %}

, но это также не сработало правильно.

Что я делаю не так?

РЕДАКТИРОВАТЬ: эта проблема возникает только при доступе к этомустраница по ссылке.Если я получаю доступ к странице «about» напрямую, у меня нет этой проблемы.

Тестирование в Ubuntu, Firefox 6.0.2, на 'runserver'

Ответы [ 2 ]

4 голосов
/ 06 марта 2012

JavaScript - это клиентский язык.HTML вашего шаблона визуализируется питоном на стороне сервера, поэтому вы не можете изменить значение визуализированной переменной с помощью кода java-скрипта.В вашем случае this_page отображается как переменная html, а var this_page = "{{ this_page }}"; определяет отдельную переменную javascript и не изменяет отображаемую переменную html this_page .Итак, firebug верен.

Вы можете использовать Ajax для этой цели, если вы хотите динамически изменять отображаемый HTML.

0 голосов
/ 07 марта 2012

Решение проблемы не имеет (возможно, не удивительно) никакого отношения к вопросу.Извинения, которые я задал в неправильном направлении.

Так как я использую jquery mobile, он вел себя не так, как я ожидал: содержимое тела (по умолчанию) загружается в ajax при изменении страницы, а часть заголовка загружается толькоодин раз.

Решение проблемы, которую я нашел здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...