我实际上是 django 的新手,我在加载图像时发现了一个问题,我按照文档中的说明进行了设置,并将图像保存到正确的文件夹中。只是加载部分无法正常工作。
# the settings.py
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
# the Model
class Legend(models.Model):
name = models.CharField(max_length=100)
description = models.CharField(max_length=300)
creator = models.ForeignKey(User, on_delete=models.CASCADE)
created = models.DateTimeField(auto_now=True)
published = models.DateTimeField(null=True, blank=True)
available = models.BooleanField(default=False)
image = models.ImageField(upload_to='gallery', blank=True, null=True)
# the template where i use the img field
{% for instance in object_list %}
<img style="width: 245px; height: 247px;" src="{{ instance.image.url }}" alt="legend image"">
{% endfor %}
上传按预期进行。将所有图像保存到媒体文件夹(在 applevel 上) 所以:media/gallery/name.jpg。 运行服务器不显示图像,但来源似乎很好: http://127.0.0.1:8000/media/gallery/gto.jpg
调试时在本地提供文件似乎有问题,但我能找到的都是旧的 django 版本。我正在使用 django --version 2.2。
我很感激任何帮助
最佳答案
当您在 DEBUG = True
下运行 django 时,您还应该添加媒体 url:
将此添加到主 urls.py
的末尾:
from django.conf import settings
from django.conf.urls.static import static
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
# and this one to serve static files:
#urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
关于python - Django 2.2 img 未加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58843143/