Почему я не могу увидеть файл изображения в Django? - PullRequest
1 голос
/ 07 ноября 2019

Я пытался загрузить файл изображения, но это не сработало. Я загрузил файл изображения от администратора. Спасибо за помощь!

вот мой код

в 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>

Ответы [ 2 ]

2 голосов
/ 08 ноября 2019

Сначала вам нужно присоединиться к каталогу мультимедиа в вашем приложении

Вот как вы можете это сделать:

Сначала вам нужно добавить это в свой 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

0 голосов
/ 08 ноября 2019

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">
...