Django点击查看按钮跳转视图页面后对应id的图片无法显示怎么解决?
问题原因
view.html模板中使用的变量名和视图函数传入的上下文变量名不匹配:
- 你在
views.py的view视图中,向模板传递的Photo实例对应的键名为alldescription - 但你在
view.html中直接调用了不存在的Photo变量,导致图片路径渲染为空,无法加载
修复方案
- 修改
view.html中的图片加载代码,替换原有img标签:
<!-- 原有错误代码 --> <img src="/media/{{Photo.image}}" width="250px"> <!-- 替换为正确代码 --> <img src="{{ alldescription.image.url }}" width="250px">
注:直接使用ImageField自带的url属性比硬编码/media/前缀更规范,后续修改MEDIA_URL配置时无需同步修改模板代码
- (可选优化)将
urls.py中view路由的参数类型改为整数,匹配Photo模型的id字段类型,避免无效参数请求:
# 原有代码 path('view/<str:pk>/', views.view, name='view'), # 修改后 path('view/<int:pk>/', views.view, name='view'),
内容的提问来源于stack exchange,提问作者Rainysky
相关产品推荐
相关产品推荐

