我正在实现 taggit 标签来创建页面的往返。我使用了 bakery-demo 中的示例代码。问题是我需要带有多个单词的标签,比如“设计思维”这样的两个词。后端巧妙地涵盖了这一点,创造了一种“设计思维”。但是列表视图不起作用。它适用于单字标签,但双字标签给我一个 404。
尝试过它是否适用于面包店演示,但出现了同样的问题。这在某种程度上是好的,这意味着我没有做错任何事。只是没有解决方案。
有没有人解决过这个问题?
我正在实现 taggit 标签来创建页面的往返。我使用了 bakery-demo 中的示例代码。问题是我需要带有多个单词的标签,比如“设计思维”这样的两个词。后端巧妙地涵盖了这一点,创造了一种“设计思维”。但是列表视图不起作用。它适用于单字标签,但双字标签给我一个 404。
尝试过它是否适用于面包店演示,但出现了同样的问题。这在某种程度上是好的,这意味着我没有做错任何事。只是没有解决方案。
有没有人解决过这个问题?
用于 URL 匹配的正则表达式似乎已设置为假设标签 slug 内只有一个单词。
这意味着该路由总是会因为一个单词标签以上的任何东西而失败。
@route('^tags/$', name='tag_archive')
@route('^tags/(\w+)/$', name='tag_archive')
def tag_archive(self, request, tag=None):
#...
请注意,匹配 URL 的正则表达式my-blog/tags/some-awesome-tag/
只会匹配单个word
. 正则表达式中的单词由空格或破折号表示\w
且不包含空格或破折号。
但是,一组单词或破折号看起来就像[\w-]
方括号表示匹配这些括号中的任何内容,并且破折号也意味着匹配破折号。
最终的新路由装饰器将如下所示:
@route('^tags/$', name='tag_archive')
@route('^tags/([\w-]+)/$', name='tag_archive') # this line changed
def tag_archive(self, request, tag=None):
#...
注意:提交PR以在 bakerydemo 中修复此问题。