django ImageField 链接未显示在 html 模板中



我可以通过admin-panel重定向到上传图像,但我无法将其加载到页面上。在HTML源代码中,看起来像这样:

<img src="" height = "200" with = "200" />

所以这是我的代码:

models.py:

class Profile(models.Model):
    user = models.ForeignKey(User)
    avatar = models.ImageField(upload_to='images/users/', verbose_name='Аватар', default = 'images/users/ava.gif/')

urls.py:

from django.conf.urls import url, include
from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from mainpage.views import *
urlpatterns = [
    #other urls
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + staticfiles_urlpatterns()

settings.py:

MEDIA_ROOT = 'C:/<<path to django app dir>>/media'
MEDIA_URL = '/media/'

模板:

{% block content %}
    <body>
        <h1>{{ user.username }}</h1>
        <img src="{{ MEDIA_URL }}{{ profile.avatar.url }}" height = "200" with = "200" />
        <p>
            <ul>
                <li>email: {{ user.email }}</li>
            </ul>
        </p>
    </body>
    {% endblock %}

将非常感谢任何帮助。

要做的第一件事是检查代码生成的HTML。

我认为,如果您的媒体设置正确,则不需要{{Media_url}}作为profile.avatar.url包含完整的URL。

<img src="{{ profile.avatar.url }}" height = "200" with = "200" />

最新更新