代码之家  ›  专栏  ›  技术社区  ›  Alien13

django%static%标记中的object.id不工作

  •  0
  • Alien13  · 技术社区  · 6 年前

    我偶然发现了一件很奇怪的事情。我用的是django 2.0.7

    在我的模板中有以下代码:

    <img src="{% static 'external_page/assets/img/profile_pics/'|add:instructor.id|add:'.jpg' %}">
    

    部署时返回( 哪个不对 ):

    <img src="/static/.jpg">
    

    但是,如果我改变:

    |add:instructor.id
    

    到:

    |add:instructor.first_name
    

    它可以正常工作,但使用的是名字而不是ID。

    更奇怪的是,在这之前不久,我有以下代码。

    ...onclick="window.location='{% url 'profile' instructor.id %}'"
    

    很好用。

    下面是完整的代码段,从更全面的角度来看:

    模板.html

    <div class="team">
        <div class="row row-instructor">
            {% for instructor in instructors %}
                <div class="card card-signup col-md-4" data-background-color="orange" style="cursor: pointer;" onclick="window.location='{% url 'profile' instructor.id %}'">
                    <div class="team-player">
                        <img src="{% static 'external_page/assets/img/profile_pics/'|add:instructor.id|add:'.jpg' %}" alt="Thumbnail Image" class="rounded-circle img-fluid img-raised">
                        <h4 class="title">{{ instructor.first_name }} {{instructor.last_name}}</h4>
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Lemayzeur    6 年前

    那是因为 instructor.id 是一个整数。您试图将它与字符串连接起来,即使在模板中,这也行不通。

    你可以用 slugify 若要将其转换为字符串,也可以创建自己的标记函数。

    试试这个:

    {% with instructor.id|slugify as id %}
    <img src="{% static 'external_page/assets/img/profile_pics/'|add:id|add:'.jpg' %}">
    {% endwith %}