首页 python正文

Reverse for 'tag' with arguments '('',)' not found. 1 pattern(s) tried: ['tag/(?P[^/]+)$']

启明SEO python 2022-02-14 11:03:59 1517 0 Django

今天遇到了这个问题,发现了一个道理,就是{% url %} 解析URL,这个时候一定要主要,传递的参数中是否有空,如果有空请一定要排除,不然就会报错。

我今天就出险了这样的错误,主要是想获取博客的所有标签,及标签所对应的内容。我的urlpatterns规则是这样写的:

path('tag/<str:tag>', views.tag_list, name='tag')

前端调用代码如下:

<li class="submenu"><a target="_blank" href="{% url 'tag' tag %}">{{tag}}</a></li>

运行之后就报错了,提示Reverse for 'tag' with arguments '('',)' not found. 1 pattern(s) tried: ['tag/(?P<tag>[^/]+)$']

当我使用下面这个代码调用的时候,就正常:

<li class="submenu"><a target="_blank" href="tag/{{ tag }}">{{tag}}</a></li>

思考了一下,然后在views打印出tags,发现有一些空的。这时,我想起不是所有的文章都设置了标签。

QQ截图20220214111744.jpg

解决办法

在views中修改代码,增加一个判断文章是否有标签的功能,代码如下:

for ar in arlist:
    content['total'] +=ar.get_readnum()
    if ar.tags:
        atags=ar.tags.split(',')
        content['tags']+=atags
    else:
        print('没有标签')

再次运行,一切正常。

评论

Python好学公众号

好文推荐

实时访客入口页面出现bd_vid=标识是什么原因

实时访客入口页面出现bd_vid=标识是什么原因

最近查看百度实时访客,总是会看到入口页面会多......

有了微信视频号,但是没有发布权限,怎么开通

有了微信视频号,但是没有发布权限,怎么开通

视频号是微信在2020年1月19号开始内测的......

如何用python抓取爱企查企业信息

如何用python抓取爱企查企业信息

前段时间,经理让我去找一些企业的信息,我平常......

服务器配置低,宝塔面板安装IIS总是安装不上怎么办

服务器配置低,宝塔面板安装IIS总是安装不上怎么办

对于一般企业网站或者博客来说,对服务器的配置......

如何修改浏览器指纹,Canvas指纹、Webgl指纹、Audio指纹修改方法?

如何修改浏览器指纹,Canvas指纹、Webgl指纹、Audio指纹修改方法?

修改浏览指纹的方法其实也是很简单,主要使用到......

win10下安装MYSQL后,提示Can't connect to MySQL server on localhost (10061)相关问题解决方法

win10下安装MYSQL后,提示Can't connect to MySQL server on localhost (10061)相关问题解决方法

我遇到的问题是电脑原先安装过mysql,卸......