首页 > 解决方案 > ValueError:“图像”属性没有与之关联的文件

问题描述

我的代码有问题吗?我已经运行了 makemigrations 和 migrate,我可以看到我保存在管理站点上的图片,但是为什么当我尝试在我的 html 上调用这张图片时,我收到了这个错误?

在此处输入图像描述

这是我的html

{% for perfume in s %}
    <img src="{{perfume.image.url}}" width="192px" height="192px" class="class">
{% endfor %}

我的意见.py

s = Perfume.objects.all()
....

我的模型.py

class Perfume(models.Model):
    image = models.ImageField(upload_to='image',null=True, blank=True)
    ....

我的设置.py

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
LOGIN_REDIRECT_URL = '/'

import os

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
def get_success_url(self, request, user):
    return (get_success_url)

我的网址.py

urlpatterns = [
      ....
]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns +=static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

标签: django

解决方案


ImageField声明的blank=True, null=True图像可以为空。您需要检查图像是否已上传到您的 html 中。

{% for perfume in s %}
    {% if perfume.image %}
        <img src="{{ perfume.image.url }}">
    {% endif %}
{% endfor %}

推荐阅读