为什么我在 Django 中看不到图像文件?

Why cannot I see the image file in django?

我尝试加载图像文件,但没有成功。我通过管理员上传了图像文件。感谢您的帮助!

这是我的代码

urls.py

path('main/archive/<int:video_id>/', views.loadphoto, name='loadphoto'),

在views.py

def loadphoto(request, video_id):
     target_img=get_object_or_404(Record, pk=video_id)
     context={'target_img':target_img.picture}

在models.py

class Record(models.Model):
    record_text = models.CharField(max_length=50)
    pub_date = models.DateTimeField('date published')
    picture=models.ImageField(blank=True)

    def __str__(self):
        return self.record_text

在img.html

<img src="target_img">

<a href="{%url 'main'%}">Main</a>

ImageField 派生自 FileField。为了在您的模板中显示图像,您应该提供其 url,请参阅 https://docs.djangoproject.com/en/2.2/ref/models/fields/#django.db.models.fields.files.FieldFile.url

源属性应该改为填充如下:

<img src="target_img.url">

首先您需要将您的媒体目录加入您的应用程序

这是您可以做到的方法:

首先你需要在你的Setting.py

中添加这个
MEDIA_URL = '/media/'

MEDIA_ROOT = os.path.join(BASEDIR,'your folder directory')

#for example app/media or something

然后你需要创建媒体Url方法如下:

然后你需要添加你的urls.py

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

urlpatterns = [
    path('main/archive/<int:video_id>/', views.loadphoto,name='loadphoto'),

] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

然后您需要将此添加到您的 Html File

<img src='{{ target_img.url }}'>

您可以在此处查看更多详细信息:

https://docs.djangoproject.com/en/2.2/ref/models/fields/#django.db.models.fields.files.FieldFile.url