使用多个单词标签时 django-taggit 404
django-taggit 404 when using multiple word tag
我正在实施 taggit 标签来创建页面的往返行程。我使用了 bakery-demo 中的示例代码。问题是我需要有多个词的标签,比如 'Design Thinking' 这样的两个词。后端巧妙地覆盖了这一点,创建了一个 slug 'design-thinking'。但是列表视图不起作用。
它适用于单字标签,但双字标签给我一个 404。
在bakery-demo中试过是否有效,但还是出现了同样的问题。
这在某种程度上是好的,这意味着我没有做错任何事。只是没有解决方案。
有人解决过这个问题吗?
URL 匹配的正则表达式似乎已设置为假定标签段内只有一个词。
这意味着路由总是会因超过单个单词标记的任何内容而失败。
原代码
@route('^tags/$', name='tag_archive')
@route('^tags/(\w+)/$', name='tag_archive')
def tag_archive(self, request, tag=None):
#...
说明
请注意,匹配 my-blog/tags/some-awesome-tag/
中的 URL 的正则表达式只会匹配一个 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 中的此问题。
我正在实施 taggit 标签来创建页面的往返行程。我使用了 bakery-demo 中的示例代码。问题是我需要有多个词的标签,比如 'Design Thinking' 这样的两个词。后端巧妙地覆盖了这一点,创建了一个 slug 'design-thinking'。但是列表视图不起作用。 它适用于单字标签,但双字标签给我一个 404。
在bakery-demo中试过是否有效,但还是出现了同样的问题。 这在某种程度上是好的,这意味着我没有做错任何事。只是没有解决方案。
有人解决过这个问题吗?
URL 匹配的正则表达式似乎已设置为假定标签段内只有一个词。
这意味着路由总是会因超过单个单词标记的任何内容而失败。
原代码
@route('^tags/$', name='tag_archive')
@route('^tags/(\w+)/$', name='tag_archive')
def tag_archive(self, request, tag=None):
#...
说明
请注意,匹配 my-blog/tags/some-awesome-tag/
中的 URL 的正则表达式只会匹配一个 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 中的此问题。