Django'中的多行字符串;包括';陈述
我正在尝试使用Django模板,并将一些代码与CSS混合,以便在弹出窗口上进行简单的悬停。我希望重用代码,但弹出窗口的内容将是HTML,可能跨越多行。是否可以将多行字符串填充到模板变量中 我试着用block和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
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列表只是一个例子。我将在弹出窗口中使用几乎所有内容