python - 如何通过{{variable/method}}将Django模板代码注入(inject)到模板中?

标签 python html django templates django-templates

我有一个模型预订,我在许多模板中使用它。创建自己的 HTML/Django 代码片段非常方便,该代码片段通过变量/模型方法注入(inject)到模板中。

使用该方法原始 HTML 是正确的,但 Django 模板语言未正确解释。

这是一种预订方法:

def get_html_description(self):
    return """<ul>
                <li><b>ID:</b> {{ reservation.id }}</li>
                <hr>
                <li><b>From:</b> {{ reservation.get_text_destination_from }}</li>
                <li><b>To:</b> {{ reservation.get_text_destination_to }}</li>
                <hr>
                <li><b>Date:</b> {{ reservation.get_date }}</li>
                <li><b>Time:</b> {{ reservation.get_time }}</li>
              </ul>"""

现在我尝试将此代码注入(inject)到模板中:

<div class="events">
     {% for reservation in data.1 %}
         <div class="event">
              <h4>{{ reservation.get_text_destination_from }} to {{ reservation.get_text_destination_to }}</h4>
              <div class="desc">
                  {% autoescape off %}{{ reservation.get_html_description }}{% endautoescape %}
              </div>...
                    ...

不幸的是,它呈现出这样的效果:

enter image description here

你知道该怎么做吗?我已经尝试过过滤器 |safe{% autoescape off %}

最佳答案

您要求的是双重替换,我认为 Django 模板引擎不会这样做。由于您是从 Reservation 实例中提取数据,因此我只需使用字符串替换来填充它。例如:

 return """<ul>
                <li><b>ID:</b> {pk}</li>
                <hr>
                <li><b>From:</b> {destination_from}</li>
                ...
           </ul>""".format(pk=self.id,
                           destination_from=self.reservation.get_text_destination_from)

关于python - 如何通过{{variable/method}}将Django模板代码注入(inject)到模板中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39960259/

相关文章:

python - 从 Django 的类外部使用 super() (或替代它,如果有的话)

python - 如何在apache2中运行Django应用程序

python - 在 numpy 数组 Python 中提取列的特定范围

python - 读取文件内容时出现奇怪的字符

php - 从 Codeigniter 执行 Python 文件

java - 如何更改主键自动递增,以便在删除行时不会跳过值

python - 如何将数据帧输出插入到mysql

html - 中心 div 位置

javascript - 多色输入框

python - 我如何继承 Django CreateView