简体   繁体   中英

how to display uploaded files or images on template in django3

I only see the file path in the template. I can't see the file itself. (django 3.x)

settings.py

STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

model.py

class EkleModel (models.Model):
    aKaydi = models.CharField(max_length=50, verbose_name='A KAYDI')
    bKaydi = models.CharField(max_length=50, verbose_name='B KAYDI')
    cKaydi = models.CharField(max_length=50, verbose_name='C KAYDI')
    upload = models.FileField(upload_to='media/%Y/%m/%d/', verbose_name='DOSYA YÜKLE')
    yuklemeTarihi =models.DateTimeField(default =timezone.now)

views.py

def index(request):
    girdiler = EkleModel.objects.filter(yuklemeTarihi__lte=timezone.now()).order_by('-yuklemeTarihi')
    return render(request, 'sayfalarUygulamasi/index.html', {'girdiler': girdiler})

index.html

<img class="card-img-top" src="girdi.upload">
<h4 class="card-title">{{girdi.aKaydi}}</h4>
<h4 class="card-title">{{girdi.bKaydi}}</h4>
<h4 class="card-title">{{girdi.cKaydi}}</h4>
<h4 class="card-title">{{girdi.yuklemeTarihi}}</h4>

you have to loop through your queryset and .url to the image

{% for girdi in girdiler %}
  <img class="card-img-top" src="{{ girdi.upload.url }}">
  <h4 class="card-title">{{girdi.aKaydi}}</h4>
  <h4 class="card-title">{{girdi.bKaydi}}</h4>
  <h4 class="card-title">{{girdi.cKaydi}}</h4>
  <h4 class="card-title">{{girdi.yuklemeTarihi}}</h4>
{% endfor %}

try this

{% for girdi in girdiler %}
    <img class="card-img-top" src="{{me.upload.url}}">
{% endfor %}

and to your model

class EkleModel (models.Model):
    upload = models.FileField(upload_to='image/', null=True, blank=True,FileField)

urls.py

from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
...
]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns +=static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

and do migrations

<img class="card-img-top" src="girdi.upload.url"> #像这样在字段名后添加url

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM