首页 > 解决方案 > 在 django 中添加个人资料图像不起作用

问题描述

我正在尝试将个人资料图片添加到我的页面,但由于某种原因,显示的是“我的图片”文本而不是图片。

我不知道我的代码有什么问题,我已经阅读了多个教程,它们都告诉我这样做。我的根目录中有一个文件夹“media”,里面有文件夹“profile_pics”。

我已将这些添加到 settings.py

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

这些到 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)

这是我的html

{% load static %}
{%block content%}
    <div class="content-section">
        <div class="media">
            <img src="{% static "profile_pics/default.jpg" %}" alt="My image"/>
            <div class="media-body">
                <h2 class="account-heading">{{ user.username }}</h2>
                <p class="text-secondary">{{ user.email }}</p>
            </div>
        </div>

    </div>
{%endblock content%}

模型.py

class profiili(models.Model):
   user=models.OneToOneField(User, on_delete=models.CASCADE)
   kuva=models.ImageField(default='default.jpg', upload_to='profile_pics')

标签: djangodjango-staticfiles

解决方案


{% static %}标签仅适用于STATIC_URL. 要获取媒体文件,您应该使用{% get_media_prefix %}

喜欢:

{% load static %}
{% get_media_prefix as MEDIA_PREFIX %}
<img src="{{ MEDIA_PREFIX }}profile_pics/default.jpg" alt="My image"/>

推荐阅读