Django 拒绝某些 Slug URL 但接受其他

Django rejects certain Slug URLs but accepts others

我有一个正在处理的 Django 项目,我刚刚意识到某些 URL 被服务器拒绝并出现错误:

NoReverseMatch: Reverse for 'mapView' with arguments '(u'intranet.hieta.biz',)' and keyword arguments '{}' not found. 1 pattern(s) tried: [u'QMSv2/(?P[\w-]+)/$']

奇怪的是我不明白有一半的页面可以工作并且可以访问,但其他页面不能。它们都共享相同的格式、数据库、视图、url、模板……我看不出有什么不同。这是它试图匹配的 url:

url(r'^(?P[\w-]+)/$', views.mapView, name="mapView")

如果有人知道什么可能导致 Django 拒绝某些 slug 而不是其他 slug,那么请告诉我任何帮助,我们将不胜感激!

注意:所有页面都使用相同的模板、url和视图呈现。 slugs 都在同一个数据库中,slugs 本身都是从同一个函数生成的。

您的组 [\w-]+ 匹配 A-Z、a-z、0-9、下划线和连字符,但不匹配句点 .。您应该将其更改为:

[\w.-]+