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

添加get_absolute_url后出现‘blog未注册命名空间’Django错误求助

问题解决方案

1. 给博客应用的URL添加名称标识

修改博客应用下的urls.py,给对应的路径加上name参数,让Django能识别这个URL:

urlpatterns = [
    path('post/<str:title>', views.detalis, name='post')
]

2. 注册博客应用的命名空间

在博客应用的urls.py最顶部加上app_name,指定命名空间为blog,这样reverse('blog:post')才能找到对应的URL:

app_name = 'blog'

urlpatterns = [
    path('post/<str:title>', views.detalis, name='post')
]

3. 修正get_absolute_url方法

你目前的方法只是打印了反向解析的结果,没有返回实际的URL,同时要确保导入reverse模块:

from django.urls import reverse

class Post(models.Model):
    # 你的其他字段定义...
    
    def get_absolute_url(self):
        return reverse('blog:post', kwargs={'title': self.title})

报错原因说明

  • 你在get_absolute_url里用了reverse('blog:post'),但既没给博客应用注册命名空间,也没给对应的URL设置名称,Django找不到匹配的路由配置。
  • 另外原方法没有返回值,模板调用时也无法获取到正确的URL。

内容的提问来源于stack exchange,提问作者آرشام نوریان

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 13:15:05