Jinja2 模板到 Django 模板

Posted

技术标签:

【中文标题】Jinja2 模板到 Django 模板【英文标题】:Jinija2 Template to Django Template 【发布时间】:2022-01-12 16:59:59 【问题描述】:

如何将此代码从 jinja2 模板转换为 django 模板

`% if (request.endpoint == 'venues') or
            (request.endpoint == 'search_venues') or
            (request.endpoint == 'show_venue') %
          <form class="search" method="post" action="/venues/search">
            <input class="form-control"
              type="search"
              name="search_term"
              placeholder="Find a venue"
              aria-label="Search">
          </form>
          % endif %`

【问题讨论】:

【参考方案1】:

只需删除if 标签后的每个括号(Django 模板不支持):

% if request.endpoint == 'venues' or request.endpoint == 'search_venues' or request.endpoint == 'show_venue' %
<form class="search" method="post" action="/venues/search">
  <input class="form-control"
         type="search"
         name="search_term"
         placeholder="Find a venue"
         aria-label="Search">
</form>
% endif %

或者,如果您想让它更紧凑,请将“搜索端点”作为列表变量传递给模板,例如search_endpoints = ['venues', 'search_venues', 'search_venues'],您可以使用 in 运算符实现相同目的:

% if request.endpoint in search_endpoints %
<form class="search" method="post" action="/venues/search">
  <input class="form-control"
         type="search"
         name="search_term"
         placeholder="Find a venue"
         aria-label="Search">
</form>
% endif %

【讨论】:

以上是关于Jinja2 模板到 Django 模板的主要内容,如果未能解决你的问题,请参考以下文章

在 Jinja2 模板引擎中使用 django-widget-tweaks

使用 jinja2 模板引擎渲染 django 表单

为啥这个 Jinja2 模板的渲染速度不比 Django 快?

带有缓存加载器的 Jinja2 与 django 模板 - 性能比较如何?

如何正确应用 django/jinja2 模板过滤器“转义”和“换行符”?

如何在 Django 1.8 中使用 jinja2 作为模板引擎