Я предполагаю, что есть причина, по которой вы этого не делаете:
{% if foo %}
{% include 'hello.html' %}
{% endif %}
Если something
- фиксированное число, вы можете использовать теги включения .В вашем шаблоне вместо {% smart_tag something %}
у вас есть {% something %}
, тогда ваша библиотека тегов выглядит следующим образом:
@register.inclusion_tag('post.html')
def something():
return {} # return an empty dict
Наконец, вы можете повторить функциональность тега include.Этот фрагмент должен указать вам правильное направление:
filepath = '/full/path/to/your/template/%s' % something
try:
fp = open(filepath, 'r')
output = fp.read()
fp.close()
except IOError:
output = ''
try:
t = Template(output, name=filepath)
return t.render(context)
except TemplateSyntaxError, e:
return '' # Fail silently.
return output