gpt4 book ai didi

Django - 图像未显示在网页中

转载 作者:行者123 更新时间:2023-12-04 10:22:51 25 4
gpt4 key购买 nike

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

模型.py :

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

View .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(用于 users 应用程序) :
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)

SETTINGS.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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com