gpt4 book ai didi

python - Django ImageField 不会在网页上显示

转载 作者:可可西里 更新时间:2023-11-01 12:55:44 28 4
gpt4 key购买 nike

我在我的 Django 模型中使用 imageField,当我尝试在 html 中显示照片时,无法识别照片。

这是我的模型.py

from django.db import models

class LatestRelease(models.Model):
title = models.CharField(max_length=50)
description = models.CharField(max_length=300)
cover = models.ImageField(upload_to='personal/static/img/')
display = models.BooleanField(default=True)

这里是view.py

from django.shortcuts import render
from personal.models import LatestRelease

def index(request):
releases = LatestRelease.objects.all()
return render(request, "personal/home.html", {'releases': releases})

HTML代码

 {% for release in releases %}
<img src="{{ release.cover.url }}" class='' height='235' width='235'>
{% endfor %}

基本上,图像路径 {{ release.cover.url }}/personal/static/img/[image name]当我使用 url 路径 /static/img/[image name] 作为来源时,我的照片才会出现。

有没有办法从 {{ release.cover.url }} 创建的字符串中取出 /personal ?或者让我的 img 源接受 /personal/static/img/[image name] 下的文件?

最佳答案

如果你也展示你的 settings.py 和 urls.py 文件可能会有帮助,但我猜你的开发服务器未设置为服务 personal/static/img/[image name]文件。要进行设置,您需要调整 settings.py 和主项目 urls.py 文件。

设置.py:

# Add these
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
MEDIA_URL = "/media/"

MEDIA_ROOT指示在您的 MEDIA_URL 时可以提供文件的位置被击中(就像当您的浏览器要求该图片时)。要实际提供您需要设置 View 的文件,有一个内置的帮助函数用于在开发中提供此文件,将其添加到您的主项目 urls.py 文件中

urls.py:

from django.conf import settings
from django.conf.urls.static import static


urlpatterns = [
# your other views
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

那你只需要重新上传图片,它会保存在media/<upload_to>/<picturename>中,在你的情况下 media/personal/static/img/<picture_name> .你的服务器实际上会知道现在在哪里可以找到它。

查看 documentation举个更好的例子。

附言

您使用的硬编码 url,/static/img/[image name]工作是因为 Django 开发服务器默认情况下可以提供来自 static/ 的静态文件。项目根目录中的目录以及任何 static/应用程序根目录中的文件夹。所以你的upload_to是一种幸福的巧合在你的 ImageField 中争论创造了 /personal/static/文件夹。然后因为DEBUG = True在 settings.py 中设置,您已设置为自动提供服务。这在上面的链接文档中有描述(更好)。

关于python - Django ImageField 不会在网页上显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52452687/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com