在 Django 中更改图像名称

Changing an image name in django

所以我有 5 张图像作为静态文件,我想在按下按钮时随机 select 显示一张图像。我在获取图像名称更新时遇到问题。当我将名称硬编码为 html 时,它确实有效。

在我看来我有:

def test(request):
    imagename = 'img' + str(random.randint(0,5)) + '.jpeg' #all the images end with jpeg so this can't be the problem
    print(imagename)
    return render(request, 'mainbook/index.html', {'image': imagename})

在urls.py我有

urlpatterns = [path('test/', views.test, name='test')]

最后 index.html 我有:

<form method="post" action="{% url 'mainbook:test' %}">
    {% csrf_token %}
    <button id="button">Press here</button>
</form>
<img src="{% static '/mainbook/images/{{image}}' %}"></img>

这当然是一个简化版本,但我确实认为问题出在这段代码中。只是不知道具体在哪里。

您正在尝试关闭 img 标签,您不能在“{% %}”中使用“{{ }}”

发件人:

<img src="{% static '/mainbook/images/{{image}}' %}"></img>

收件人:

<img src="{% static '/mainbook/images/{{image}}' %}">

然后:

<img src="{% static '/mainbook/images/{{image}}' %}">

收件人:

<img src="{% static '/mainbook/images/' %}{{image}}">

应该可以。