Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 在URL.py中让slug正常工作时遇到问题_Django_Url_Hyperlink_Slug - Fatal编程技术网

Django 在URL.py中让slug正常工作时遇到问题

Django 在URL.py中让slug正常工作时遇到问题,django,url,hyperlink,slug,Django,Url,Hyperlink,Slug,我在url.py中使用slug时遇到了一个问题(可能是因为我缺乏这方面的知识) 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.py中使用slug时遇到了一个问题(可能是因为我缺乏这方面的知识)

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),
url.py
url(r“^admin/”,包括(admin.site.url)),
url(r“^search\u form/$”,search\u form),
url(r“^search/$”,搜索),
url(r“^search\u results/$”,搜索结果),
#url(r“^search/search_results/acetate/$”,项目),
url(r'^(?P[-\w\d]+),(?P\d+/$),项目),
这里是html链接 href=“search_results/{{chemical.S_field}}/”>{{chemical.Barcode} 其中,chemical.S_字段段塞字段基于项目名称的段塞版本

我正在尝试创建一个页面、url和视图,可以将用户带到一个模板,该模板将根据他们单击的链接而改变

例如,如果你有多毛的狗,多毛的猫,毛茸茸的鸟。如果用户点击毛猫,鼻涕虫将是毛猫,用户将被带到一个页面(搜索/搜索结果/毛猫/该页面将包含从数据库显示的毛猫的各种信息)

我觉得这是可能的,但每次我尝试使用slug时(可能我做得不正确),它都会显示^(?p[-\w\d]+),(?p\d+/$,而不是slug中存储的信息

还有没有类似的地方有关于django的教程或良好信息? 我已经浏览了网站上的django教程,以及django网站开发最终指南中的django教程

谢谢

编辑 我以前可能不清楚,我应该选择一个更好的例子。 我希望显示的页面将位于search/search\u results/slug 其中slug将是项目名称的slugized版本。 下面是我现在通过添加最新的url得到的信息

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.
Django使用Inventory.URL中定义的URLconf,按以下顺序尝试了这些URL模式:
^管理员/文件/
^管理员/
^搜索表格/$
^搜寻/$
^搜索结果/$
^(?P[-\w\d]+),(?P\d+)/$
^(?P[-\w]+)/(?P\d+)/$
当前URL search/search\u results/acetate/,与其中任何一个都不匹配。
试试这个:

url(r'^search/search_results/(?P<slug>[-\w]+)/$', item),
url(r'^search/search_results/(?P[-\w]+)/$),项目),

您将有这样一个url:search/search\u results/acetate/,它将调用函数项。

此url模式无效。您可以在

url(r'^(?P[-\w\d]+),(?P\d+/$),项)
试一试

url(r'^(?P[-\w\d]+)/$,项目)
因为你只想匹配鼻涕虫

如果您希望能够匹配slug或id,您可以有两个单独的目标,每个目标都是一个

url(r'^(?P\d+/$),项,名称='by-id')
url(r'^(?P[-\w\d]+)/$,项,名称='by-slug')

我看不到您想要的结果(搜索/搜索结果/毛茸茸的猫/)的任何url模式。看看url模式是如何工作的:部分问题是我有url(r'^(?P[-\w\d]+)/$,item),我需要的是url(r'^搜索/(?P[-\w\d]+)/$,item)
url(r'^(?P<slug>[-\w\d]+),(?P<id>\d+)/$', item)
url(r'^(?P<slug>[-\w\d]+)/$', item)
url(r'^(?P<id>\d+)/$', item, name='by-id')
url(r'^(?P<slug>[-\w\d]+)/$', item, name='by-slug')