You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django中编辑条目URL链接异常问题(Python Crash Course第3版)

Django模板标签未解析导致404错误排查方案

以下是针对你遇到的模板标签{% url 'learning_logs:edit_entry' entry.id %}未被解析、直接显示在URL中导致404的排查步骤:

  • 检查模板文件扩展名:确保模板文件后缀为.html,Django仅会解析.html格式的模板文件,其他后缀(如.txt)会直接输出原始内容。
  • 验证模板标签语法:
    • 确认标签内的引号为英文半角引号,中文引号会导致Django无法识别标签结构。
    • 检查模板上下文是否包含entry对象:视图函数必须将entry通过context参数传递给模板,否则entry.id无法被解析。
  • 确认模板目录结构:
    • 确保模板文件位于learning_logs/templates/learning_logs/目录下(Django默认查找每个应用下的templates/应用名子目录)。
    • 检查项目settings.py的INSTALLED_APPS列表是否包含learning_logs,未添加应用会导致Django无法加载对应模板。
  • 检查视图渲染方式:
    • 必须使用render()函数渲染模板,而非HttpResponse()直接返回模板内容。正确示例:
      from django.shortcuts import render
      from .models import Entry
      
      def entry_detail(request, entry_id):
          entry = Entry.objects.get(id=entry_id)
          context = {'entry': entry}
          return render(request, 'learning_logs/entry.html', context)
      
  • 核对URL命名配置:
    • 在learning_logs/urls.py中,edit_entry的URL规则必须设置正确的name属性,示例:
      from django.urls import path
      from . import views
      
      urlpatterns = [
          # 其他URL规则
          path('edit_entry/<int:entry_id>/', views.edit_entry, name='edit_entry'),
      ]
      
  • 清除浏览器缓存:使用无痕模式打开页面,避免缓存的未解析模板内容干扰测试。

内容的提问来源于stack exchange,提问作者chaos_daemon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 04:34:55