django 参数即使在使用参数重定向时也得到 none
django parameter gets none even on redirect with parameter
我有以下视图,如果它没有被重定向,我只想留在当前视图中。
def surveys_view(request, survey=None):
if survey != 'survey1':
return redirect('matching:surveys', survey='survey1')
我的 urls.py 看起来像这样:
url(r'^surveys', views.surveys_view, name='surveys'),
url(r'^surveys/(?P<survey>survey1|survey2)', views.surveys_view, name='surveys'),
问题是调查变量每次都是 None
,导致无限重定向。我认为在重定向之后,survey
值将设置为“survey1
”。
如何将调查参数设置为“survey1
”而不是 None
?
在 django 中 urls
列表是从第 0 个位置开始解析的,所以在你的 url 中,
url(r'^surveys', views.surveys_view, name='surveys')
具有第一优先级,因为正则表达式匹配任何以 surveys<whatever>
开头的 uri,因此要么将 url 设置更改为
url(r'^surveys/$', views.surveys_view, name='survey-list'),
url(r'^surveys/(?P<survey>survey1|survey2)', views.surveys_view, name='survey-details'),
或更改顺序
url(r'^surveys/(?P<survey>survey1|survey2)', views.surveys_view, name='survey-detail'),
url(r'^surveys', views.surveys_view, name='survey-list'),
注意:注意名称参数也有变化,因为最好设置为唯一值
我有以下视图,如果它没有被重定向,我只想留在当前视图中。
def surveys_view(request, survey=None):
if survey != 'survey1':
return redirect('matching:surveys', survey='survey1')
我的 urls.py 看起来像这样:
url(r'^surveys', views.surveys_view, name='surveys'),
url(r'^surveys/(?P<survey>survey1|survey2)', views.surveys_view, name='surveys'),
问题是调查变量每次都是 None
,导致无限重定向。我认为在重定向之后,survey
值将设置为“survey1
”。
如何将调查参数设置为“survey1
”而不是 None
?
在 django 中 urls
列表是从第 0 个位置开始解析的,所以在你的 url 中,
url(r'^surveys', views.surveys_view, name='surveys')
具有第一优先级,因为正则表达式匹配任何以 surveys<whatever>
开头的 uri,因此要么将 url 设置更改为
url(r'^surveys/$', views.surveys_view, name='survey-list'),
url(r'^surveys/(?P<survey>survey1|survey2)', views.surveys_view, name='survey-details'),
或更改顺序
url(r'^surveys/(?P<survey>survey1|survey2)', views.surveys_view, name='survey-detail'),
url(r'^surveys', views.surveys_view, name='survey-list'),
注意:注意名称参数也有变化,因为最好设置为唯一值