Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.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
Python Django:访问URL变量的基于类的视图_Python_Django_Url_Django Class Based Views - Fatal编程技术网

Python Django:访问URL变量的基于类的视图

Python Django:访问URL变量的基于类的视图,python,django,url,django-class-based-views,Python,Django,Url,Django Class Based Views,My urls.py有一个条目: urlpatterns = [ url(r'^results/(?P<query>).+', views.ResultsView.as_view(), name="results"), ] 我试图获取在url.py中设置的query变量的值。然而,在尝试了我在其他SO帖子上找到的各种解决方案后(正如您从所有打印语句中看到的),什么都不起作用 我相当确定my urls.py设置正确,因为请求解析为正确的页面(results/),但所有打印d

My urls.py有一个条目:

urlpatterns = [

    url(r'^results/(?P<query>).+', views.ResultsView.as_view(), name="results"),
]
我试图获取在url.py中设置的
query
变量的值。然而,在尝试了我在其他SO帖子上找到的各种解决方案后(正如您从所有打印语句中看到的),什么都不起作用

我相当确定my urls.py设置正确,因为请求解析为正确的页面(results/),但所有打印dict查询条目的尝试都返回空字符串,并且
json.dumps(kwargs,indent=1))
打印此:

HERE: {
 "query": ""
}

我做错了什么?

只需复制我的评论作为答案。您错过了url正则表达式中的模式部分。尝试将url更改为此:

url(r'^results/(?P<query>[\w.-]+)', views.ResultsView.as_view(), name="results")
url(r'^results/(?P[\w.-]+),views.ResultsView.as_view(),name=“results”)

您能显示实际的url吗??与您正在传递的查询类似,在本地,带有查询的url可能如下所示:
http://127.0.0.1:8000/results/australia
其中
australia
是用户在搜索栏中设置的查询词。如果您犯了错误,搜索词将附加到url中,与此不同,如下所示。因此,您不需要该参数部分,在视图中,do request.GET.GET('q'),您将获得搜索词,并且不要忘记从url中删除该参数。看起来您在url中遗漏了模式部分。尝试将其更改为:
url(r'^results/(?P[\w.-]+),views.ResultsView.as_view(),name=“results”),
谢谢@neverwalkoner。我觉得这很管用。我的正则表达式有点生锈了,所以我一定是误解了我的正则表达式会匹配什么。如果你想写它作为答案,我会把它标记为正确的。
url(r'^results/(?P<query>[\w.-]+)', views.ResultsView.as_view(), name="results")