媒体文件夹图像未显示在模板页面中

时间:2019-05-30 18:41:04

标签: django django-templates

我是Django的新手。中间文件夹图像未显示在模板文件中。请帮助我。

models.py

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

settings.py

STATIC_URL = '/static/'

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

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

MEDIA_URL = '/media/'

urls.py

urlpatterns = [
......
]
if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

views.py

def image_display(request):
    image_obj = Images.objects.all()
    return render(request, 'index.html', {'image_obj': image_obj})

index.html

<body>

    {% for item in myoffers_objs %}
    <div>
        <img src="{{ item.image.url }}" alt="Images"/>
    </div>
    {% endfor %}

</body>

Project details我犯错了。为什么它显示这样。 Image displaying like this

2 个答案:

答案 0 :(得分:0)

模板文件中的for循环不正确。 试试这个

<body>

    {% for item in image_obj %}
    <div>
        <img src="{{ item.image.url }}" alt="Images"/>
    </div>
    {% endfor %}

</body>

答案 1 :(得分:0)

正确的static_root:

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

如果在该html中使用静态变量,则必须将其添加到html文件中:

{% load staticfiles %}

还必须运行以下命令来收集项目中的静态文件:

python manage.py collectstatic