Django后台创建的ContactLink链接无法在前端页面正常显示
故障根因
视图向模板传递上下文的变量名与模板中调用的变量名不匹配:
- 视图
ContactView中,ContactLink的查询集被绑定到了上下文键contact(单数) - 模板中遍历使用的变量是
contacts(复数),模板无法识别该变量,循环逻辑完全不执行,因此没有链接渲染输出。
修复方案
二选一即可,推荐第一种命名更符合语义规范:
- 修改视图的上下文键名,和模板调用保持一致:
将ContactView中render方法的上下文参数修改为:
return render(request, 'contact/contact.html', {'contacts': contacts, 'form': form})
- 修改模板遍历逻辑,和视图上下文保持一致:
将模板中的循环语句修改为:
{% for contact in contact %}
其他注意事项
修复变量名后如果出现图标无法加载的问题,需要检查Django媒体文件配置:
- 确认
settings.py中已配置MEDIA_ROOT和MEDIA_URL参数 - 开发环境下需要在项目主路由中添加媒体文件的访问路由,示例:
from django.conf import settings from django.conf.urls.static import static urlpatterns = [ # 原有路由配置 ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
内容的提问来源于stack exchange,提问作者em0ji
相关产品推荐
相关产品推荐

