【问题标题】:Django TemplateSyntax Error with Sorl-thumbnail带有 Sorl 缩略图的 Django 模板语法错误
【发布时间】:2011-08-10 01:37:44
【问题描述】:

我正在尝试让 Sorl-thumbnail 在我的登台服务器上运行,但我遇到了 TemplateSyntaxError,因为该应用程序在 localhost 上运行良好,所以它抛出了我。

错误出现在 {% endthumbnail %}

TemplateSyntaxError at /home/
Invalid block tag: 'endthumbnail', expected 'endif'

任何帮助将不胜感激。谢谢!

{% load thumbnail %}

{% if picture.photo_medium %}
    <img src="{{AWS_URL}}{{picture.photo_medium}}" class="imagepage" width="400" height="300">
{% else %}
    {% if picture.photo_large|is_portrait %}
       <div class="portrait">
          {% thumbnail picture.photo_large "400" crop="center" as im %}
          <img src="{{AWS_URL}}{{ im }}">
       </div>
    {% else %}
       <div class="landscape">
          {% thumbnail picture.photo_large "400" crop="center" as im %}
          <img src="{{AWS_URL}}{{ im }}">
       </div>
    {% endif %}
{% endif %}

【问题讨论】:

  • 我在页面上方调用 {% load thumbnail %}。以防有人对此感到疑惑
  • 我真的看不出问题,一切都应该正常。尝试通过删除 {% if %} 块来进行实验,会发生什么?

标签: django django-templates sorl-thumbnail


【解决方案1】:

您的本地主机上安装的 sorl-thumbnail 版本可能比登台服务器上安装的版本旧。 endthumbnail 标签是最近才添加的,作为主要重写的一部分。

如果您发现需要升级,您可能会发现设置THUMBNAIL-DEBUG 有助于跟踪其他问题。

【讨论】:

  • 是的 - 删除主机上所有对 sorl 的引用,然后重新运行“pip install sorl-thumbnail”为我修复了它。
【解决方案2】:

我可能错了,但我认为您不需要{% endthumbnail %} 标签。

【讨论】:

  • 根据 docs (thumbnail.sorl.net/examples.html#template-examples) 他确实做到了。
  • 嗯,这对我也不起作用——我根本不知道它如何在本地服务器上工作。我一直在没有 endthumbnail 标签的情况下使用它 - 有了它,我得到同样的错误(总是)。
  • 奇怪 - 解决方案是删除 endthumbnail,即使文档使用它。
  • @Herman 还有一个问题,我现在收到 Invalid filter:'is_portrait' 问题,我想知道您的设置是否与使用文档时的设置不同。我已经在上面发布了完整的代码。谢谢!
  • @Emile:抱歉,从未使用过该选项 - 但是,我在我的 sorl 文件夹中使用了 grep -r "portrait" *,并且没有提及任何 is_portrait 过滤器(portrait 这个词不在任何地方待观察) - 所以它要么是 sorl 较新版本中的一个功能,要么尚未实现(或已弃用)!
【解决方案3】:

问题也可能与加载模板标签有关。

我在基本 html 中做 {% load thumbnail %}。 当我在继承的 html 中调用下面的代码时,得到了同样的错误。

{% thumbnail service_type.pic.image "100x100" crop="center" as im %}
   <img .....>
{% endthumbnail %} 

查看此讨论about loading template tags in base.html

【讨论】:

    【解决方案4】:

    我刚刚在 Mezzanine 中使用 SORL Thumbnail 时遇到了这个问题。显然 Mezzanine 会加载它自己的缩略图,所以如果你 {% load thumbnail mezzanine_tags %},mezzanine 的 thumbnail 会从 SORL 的 Thumbnail 标签中接管。但是,如果您将其反转{% load mezzanine_tags thumbnail %},则可以正常工作。

    经验教训:确保您正在使用的其他库不会无意中接管,并且为了安全起见可能最后加载缩略图。

    【讨论】:

      猜你喜欢
      • 2012-12-25
      • 1970-01-01
      • 2015-06-10
      • 2015-07-13
      • 2013-11-17
      • 2011-01-11
      • 2014-08-21
      • 2012-05-18
      • 1970-01-01
      相关资源
      最近更新 更多