2015-03-12 2 views
-1

В include documentation говорится, что вы можете включить шаблон, содержащийся в переменной. Однако они не объясняют, как написать шаблонную переменную.Язык шаблонов Django включает переменную

Я ищу, чтобы сделать что-то вроде:

{% variable thing %} 
    <div> Hello {{name}} </div> 
{% endvariable thing %} 

{# include the variables #} 
{% include thing with name='Chris' %} 
{% include thing with name='Julie' %} 
+0

Значит, у вас есть ключ с именем «вещь» в контексте вашего шаблона, который имеет путь к шаблону, например «foo/bar.html»? Вы должны добавить это, на ваш взгляд. –

+0

ключевое слово переменной, которое я создал, потому что я не уверен, как это сделать. Я хочу включить шаблон в один файл, а не другой файл. Я понимаю, что могу просто поместить мой шаблон в отдельный файл html и включить его в другой. Я пытался избежать этого, так как переменная вещь будет использоваться в одном файле – bovus

+1

Вы неправильно прочитали документацию. В нем говорится, что вы можете включить файл шаблона, используя имя, взятое из переменной, а не то, что содержимое шаблона может находиться в переменной. –

ответ

1

Просто создайте шаблон thing.html:

<div>Hello {{name}}</div> 

, а затем в основной шаблон включить его:

{% include 'thing.html' with name='Chris' %} 
{% include 'thing.html' with name='Julie' %} 
+0

Можно ли создать шаблон в одном файле? Это то, что я ищу – bovus

+0

Возможно, вам лучше использовать тег шаблона: https://docs.djangoproject.com/en/dev/howto/custom-template-tags/#writing-custom-template-tags –

+0

Do вы хотите что-то вроде макросов jinja? http://jinja.pocoo.org/docs/dev/templates/#macros Нет, встроенная система шаблонов Django не поддерживает эту функцию. – catavaran

0

Для вашего Например, вам нужно будет добавить ключ с именем «вещь» в контекст вашего шаблона в вашем представлении. «вещь» нуждается в значении типа «foo/bar.html», пути к шаблону.

return render_to_response('index.html', { 
    'thing': 'foo/bar.html'}, RequestContext(request)) 
Смежные вопросы