Django'中的多行字符串;包括';陈述

Django'中的多行字符串;包括';陈述,django,django-templates,Django,Django Templates,我正在尝试使用Django模板,并将一些代码与CSS混合,以便在弹出窗口上进行简单的悬停。我希望重用代码,但弹出窗口的内容将是HTML,可能跨越多行。是否可以将多行字符串填充到模板变量中 我试着用block和block.super做一些时髦的事情,但这似乎只在扩展时起作用(而不是include) 这是我想做的一个例子。可能吗 index.html <body> <h2>My Popup</h2> {% include "snippets/popup.ht

我正在尝试使用Django模板,并将一些代码与CSS混合,以便在弹出窗口上进行简单的悬停。我希望重用代码,但弹出窗口的内容将是HTML,可能跨越多行。是否可以将多行字符串填充到模板变量中

我试着用block和
block.super做一些时髦的事情,但这似乎只在扩展时起作用(而不是
include

这是我想做的一个例子。可能吗

index.html

 <body>
 <h2>My Popup</h2>
 {% include "snippets/popup.html" with class="p" spantext="Hover me" popupdiv="""
  <h2>This is a popup!</h2>
     <ul>
          <li>Something</li>
          <li>Something else</li>
     </ul>
 """
%}
 </body>
 <div class="{{ class }}">
     <span class='pointer'>{{ spantext }}</span>
     <div class="popup">
         {{ popupdiv }}
     </div>
 </div>
我知道在Django中不可能有多行模板标记,但是除了将我所有的div html压缩到一行并转义任何引号之外,还有其他方法吗


干杯

最好的方法应该是在模块中创建一个包含标签的templatetags

{% load popup_tag %}

{% show_popup "class" "span_text" "popupdiv" %}

因此,假设您的模块是您的模块,您的模块带有文件夹templatetags和文件popup_tag.py

yourModule/
---- views.py
---- models.py
---- templates/
     ---- snippet/
          ---- popup.html
---- templatetags/
     ---- __init__.py
     ---- popup_tag.py
您的弹出标签.py可能如下所示:

from django import template

register = template.Library()

def show_pop_up(class, span_text, popupdiv):
    return {'class': class,
            'span_text': span_text,
            'pop_up_div': pop_up_div}

register.inclusion_tag('snippet/popup.html')(show_popup)
然后,只需调用模板中的标记index.html

{% load popup_tag %}

{% show_popup "class" "span_text" "popupdiv" %}
原来“解析到另一个模板标记”是我想要的

这是我的密码:

tags.py
(在
templatetags
文件夹中)

然后在我的html文件中,我只需执行以下操作:

{% popup with class_name=management spantext=Manage %}
<h2>This is a popup!</h2>
     <ul>
          <li>Something</li>
          <li>Something else</li>
     </ul>
{% endpoup %}
{%popup,类名称为\u name=management spantext=Manage%}
这是一个弹出窗口!
  • 某物
  • 别的
{%endpoup%}
我还没有对此进行测试,但我猜既然您仍在使用模板标记(
show\u popup
),您仍然无法添加跨多行的文本?我已经修改了我的问题,使之更明确地表达了我想要的是什么?你想绝对使用html列表吗?调用模板标记时是否可以使用循环变量。像{%show_popup“class”,“span_text”variable%}和模板{%for item in variable%}
  • item
  • {%endfor%}不,HTML列表只是一个例子。我将在弹出窗口中使用几乎所有内容