我的django网站的网址有点问题。
事实上我有:
urlpatterns = i18n_patterns('',
url(r'^test/(?P<variable_name>\w+)/$', views.testUrl),
我有一个名为“test”的动态页面。经过一些处理后,从视图重定向:
def testUrl(request, variable_name):
current_site = Site.objects.get_current()
urlTest = HttpRequest.get_full_path(request)
parseIt = variable_name.split("/")
...
for x in parseIt:
if x == 'm':
if ToFind[:1] == 'm':
ID = ToFind[1:]
else:
ID = ToFind
try:
context_ret = GetId(x, api_url, ID, api_key, context_ret)
except Exception as err:
context_ret['message'] = err
return render(request, 'base_templates/test.html', context_ret)
elif x == 'z':
try:
context_ret = GetId(x, api_url, ToFind, api_key, context_ret)
except Exception as err:
context_ret['message'] = err
return render(request, 'base_templates/test.html', context_ret)
return render(request, 'base_templates/test.html', context_ret)
因此,如果我输入mydomain.org/test/,我会显示我的动态页面。完美。
但是,如果我做mydomain.org/test/{whatever}我已经渲染了test.html模板,但没有动态页面! 因此,问题是我在这个动态页面中有动态插件,我需要 - 无论测试背后是什么/ - 使用相同的动态页面。而不是模板。
不改变网址..
有办法吗?
编辑:
这是一个电话示例: domain.org/test/1923 /
答案 0 :(得分:2)
由于您希望{whatever}
来自/test/{whatever}
,但您需要在网址中声明变量或通过{whatever}
变量传递GET
。
在url中声明变量:
像这样更改url definition
...
url(r'^test/(?P<variable_name>\w+)/$', views.testUrl),
...
并在视图中捕捉到它:
def testUrl(request, variable_name):
# Now if you call '/test/hithere/'
# variable_name will take the value 'hithere'
# you could do -> parseIt = variable_name
...
Passing {whatever}
via GET
variable
你总是可以这样称呼你的网址:
mydomain.org/test/?var=hithere
在你看来:
def testUrl(request):
parsetIt = request.GET.get('var')
...