Django-{%static%}标记中的object.id无法正常工作

时间:2018-07-11 18:52:30

标签: django templates static

我偶然发现了一件非常奇怪的事情。我正在使用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

它可以正常工作,但是使用first_name而不是id。

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

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

哪个工作正常。

下面是整个代码段,以提供更全面的视图:

template.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 个答案:

答案 0 :(得分:1)

这是因为instructor.id是一个整数。并且您正在尝试将其与字符串连接,即使在模板中也无法使用。

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

尝试一下:

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