我在 urls.py 中使用 slugs 时遇到问题(可能是由于我对该主题缺乏了解)。
Urls.py
url(r'^admin/', include(admin.site.urls)),
url(r'^search_form/$', search_form),
url(r'^search/$', search),
url(r'^search_results/$', search_results),
#url(r'^search/search_results/acetic-acid/$', item),
url(r'^(?P<slug>[-\w\d]+),(?P<id>\d+)/$', item),
这是html链接 href="search_results/{{chemical.S_field}}/">{{chemical.Barcode }} 其中chemical.S_field slug 字段基于项目名称的slugified 版本。
我正在尝试创建一个页面、URL 和 View ,该页面、URL 和 View 将能够将用户带到一个模板,该模板将根据他们单击的链接而变化。
例如,如果您有毛茸茸的狗、毛茸茸的猫、毛茸茸的鸟。如果用户单击“毛猫”,则鼻涕虫将是“毛猫”,并且用户将被带到一个页面(search/search_results/hairy-cats/,该页面将包含从数据库中显示的有关毛猫的各种信息。
我觉得这是可能的,但每次我尝试使用 slug (也许我做得不正确)时,它都会显示 ^(?P[-\w\d]+),(?P\d+ )/$ 而不是存储在 slug 中的信息。
还有一个地方有类似的关于 django 的教程或好的信息吗? 我已经浏览了网站上的 django 教程以及《Django Web 开发权威指南》中的 django 教程。
谢谢
编辑 我之前可能并不清楚应该选择一个更好的例子。 我想要显示的页面将位于 search/search_results/slug 其中 slug 将是项目名称的 slugified 版本。 这是我现在添加最新网址后得到的内容
Using the URLconf defined in Inventory.urls, Django tried these URL patterns, in this order:
^admin/doc/
^admin/
^search_form/$
^search/$
^search_results/$
^(?P<slug>[-\w\d]+),(?P<id>\d+)/$
^(?P<slug>[-\w]+)/(?P<id>\d+)/$
The current URL, search/search_results/acetic-acid/, didn't match any of these.
最佳答案
此 URL 模式无效。您可以在Named Groups中阅读更多相关信息。
url(r'^(?P<slug>[-\w\d]+),(?P<id>\d+)/$', item)
尝试
url(r'^(?P<slug>[-\w\d]+)/$', item)
因为您试图仅匹配蛞蝓。
如果您希望能够匹配 slugs 或 ID,您可以有 2 个单独的目标,每个目标都是 Named URL Pattern
url(r'^(?P<id>\d+)/$', item, name='by-id')
url(r'^(?P<slug>[-\w\d]+)/$', item, name='by-slug')
关于django - 在 urls.py 中使 slugs 正常工作时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17326879/