【问题标题】:Django string index out of rangeDjango字符串索引超出范围
【发布时间】:2011-08-12 17:55:02
【问题描述】:

非常困惑。我有一个包含 32 个项目的变量,我正在尝试执行 for 循环,但它显示“渲染时捕获 IndexError:字符串索引超出范围”

有什么想法吗?变量肯定不为空。

{% if photos %}
    <ul class="photo-grid">
        {% for photo in photos %}
                <li>
                        <img src="{{ photo.images.low_resolution.url }}" />
                </li>
        {% endfor %}
    </ul>
{% else %}
    No photos found.
{% endif %}

【问题讨论】:

  • 错误可能是从其他地方触发的。寻找可以解析 photo.images.low_resolution.url 的代码?
  • 你确定不是你的views.py你的错误出现了吗?据我所知,默认情况下模板中的变量错误会静默失败
  • traceback - 某物正在某处获取某物的索引:D。编辑:哇,Python 标签的威力。
  • 看起来实际上您的photo dict/object 之一没有您尝试访问的密钥。我的猜测是缺少photo.imagesphoto.images.low_resolutionphoto.images.low_resolution.url

标签: python django templates


【解决方案1】:

我相信问题可能出在价值的photo.images 部分。 images 是照片对象中的数组还是集合?如果它是一个数组,images.low_resolution 正试图以low_resolution 的索引值访问数组中的图像,这可能不是您想要的(或者可能是???)。您可能需要添加一些逻辑来循环 photo.images,而不是尝试以现在的方式访问它。

有关其他信息,请参阅此答案:How to access array elements in a Django template?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    • 2021-05-16
    • 2016-02-19
    • 2012-03-02
    • 2016-02-10
    相关资源
    最近更新 更多