Шаблон Django не отображает полный контекст - PullRequest
0 голосов
/ 03 октября 2010

Я использую шаблоны с Django.У меня возникла проблема, когда контекст не отображается.Meta_k является нулевым.Meta_description нет.

 t = get_template('projects.html')   
 html = t.render(Context({
       'completed': completed, 
       'current':current, 
       'description': sp.description, 
       'project_title':sp.name, 
       'img':images, 
       'meta_desc': sp.meta_description, 
       'meta_k:': sp.meta_keywords
 }))

Я могу запустить сервер в режиме отладки в eclipse, и поэтому я знаю, что sp.meta_keywords не является нулевым.Вот где я вызываю код в projects.html:

{% block meta_keywords %}<br>
{% if meta_k %}<br>
&nbsp;&nbsp;&nbsp;&nbsp;{{ meta_k }}<br>
{% else %}<br>
&nbsp;&nbsp;&nbsp;&nbsp;Venkat, Rao, engineer, inventor, entrepreneur, projects, blue dart, control systems, labview<br>
{% endif %}<br>
{% endblock %}

По умолчанию используется значение else, когда я знаю, что meta_k не должен быть нулевым.Полный код можно найти здесь в Google Code.

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

Ответы [ 2 ]

3 голосов
/ 03 октября 2010

Единственное предложение для вас, это то, что, скорее всего, это ошибка в вашем коде, для нас будет трудно отлаживать без запуска всего вашего проекта.

Поэтому я предлагаю вам поэкспериментировать с командной строкой и посмотреть, сможете ли вы повторить ошибку простым способом, чтобы мы могли попытаться ее исправить. Я уверен, что в процессе вы найдете проблемную часть

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

>>> from django.template import Context, Template
>>> s = """{% block meta_keywords %}<br>
... {% if meta_k %}<br>
... &nbsp;&nbsp;&nbsp;&nbsp;{{ meta_k }}<br>
... {% else %}<br>
... &nbsp;&nbsp;&nbsp;&nbsp;Venkat, Rao, engineer, inventor, entrepreneur, projects, blue dart, control systems, labview<br>
... {% endif %}<br>
... {% endblock %}"""
>>> t = Template(s)
>>> c = Context({'meta_k':['a','b','c']})
>>> t.render(c)
u'<br>\n<br>\n&nbsp;&nbsp;&nbsp;&nbsp;[&#39;a&#39;, &#39;b&#39;, &#39;c&#39;]<br>\n<br>\n'
0 голосов
/ 03 октября 2010

Так что я просто сделал глупую ошибку:

В файле рендеринга, который у меня есть:

html = t.render(Context({'completed': completed, 'current':current, 'description': sp.description, 'project_title':sp.name, 'img':images, 'meta_desc': sp.meta_description, 'meta_k:': sp.meta_keywords)

это относится к "meta_k:" обратите внимание на точку с запятой

в шаблоне у меня есть

{% if meta_k %}

примечание без точки с запятой

Если удалить точку с запятой, это сработает.Это было глупо.

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