Django - 图像未显示在网页中

标签 django

在我的项目中,我有一个 DetailView,因此用户可以查看他们的个人资料。在这里,我想显示他们的个人资料图片。但是,当我打开浏览器并转到详细信息页面时,没有显示个人资料图片。我的代码如下所示。

models.py:

class User(AbstractUser):
    profilePic = models.ImageField(upload_to='profile_pics/', default='static/default-profile.png')

views.py:

class DetailProfile(generic.DetailView):
    model = User
    # Template that a users profile picture should be displayed in
    template_name = 'detail_profile.html'

detail_profile.html:

<img width="200px"  src="{{ user.profilePic.url }}" alt="">

浏览器返回错误:

GET http://localhost:8000/media/static/default-profile.png 404 (Not Found)

urls.py(对于用户应用):

urlpatterns = [
    path('signup/', views.signup, name='signup'),
    path('login/', views.login, name='login'),
    path('resetone/', views.resetone, name='resetone'),
    path('resetwo/', views.resetwo, name='resetwo'),
    path('viewprofile/<int:pk>', views.DetailProfile.as_view(), name='detail_profile'),
]  + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

设置.PY:

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

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

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

目前,所有用户都将文件 default-profile.png 分配给他们的个人资料图片,但稍后我将实现用户更改其个人资料图片的功能。

default-profile.png 存储在静态文件夹中(查看上面的 settings.py 代码),并且在用户首次注册时也会分配给用户。有谁知道为什么这个文件没有显示在浏览器中以及为什么我收到上面显示的错误?谢谢。

最佳答案

您似乎尝试了错误的网址。 当您将它们上传到 profile_pics/ 时,上传的所有媒体都位于 profile_pics 目录中,该目录可能应该位于根目录中。 以下正确的网址是:- http://localhost:8000/media/profile_pics/yourimagename.jpg

关于Django - 图像未显示在网页中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60760529/

相关文章:

javascript - 向 google 注册的链接在我的页面上给出错误,但在 allauth 页面上没有给出错误

python - 在 python-social-auth 中从 google 和 facebook 检索个人资料图片

sql - 在 Django 中构造 Q 对象时保持 SQL 运算符优先级

python - 在 Mac OS X 上安装 PIL 以与 Django 一起使用

python - 如何在nginx中生成用户定义的 "404 page not found"?

python - Django,如何仅在更改一个特定属性时更新 DateTimeField 属性

javascript - 如何在 websocket 上 .append() 新消息以使用 CSS 样式页面?

python - Django ORM - 通过过滤的外键关系查询集顺序

python - 在 Django Admin 中添加 map

python - Django 重定向保留子路径