我需要将一个特定于城市的快速内容固定到我正在构建的网站上。我打算这样做 - http://example.com/XX/normal-slug。我在urls.py中设置的是:
url(r'^(?P<city>[a-zA-Z]{2})/', include('homepage.urls', namespace='homepage')),
url(r'^(?P<city>[a-zA-Z]{2})/section/', include('section.urls', namespace='section')),
# etc
我现在遇到的问题是突然间我的方法现在都在期待一个“city = XX”的参数。我计划在中间件中处理实际的城市业务逻辑。我的问题是......无论如何都有django“忽略”命名的param?我现在不想修改我的所有观点来采取** kwards或'city'param。如果我对城市代码进行硬编码,那就符合我的期望:
url(r'^XX/section/', include('section.urls', namespace='section')),
我可以复制那种行为,但动态吗?
(另外,我计划进一步发展更强大的东西,可能是Django Sites)
答案 0 :(得分:1)
您可以使用非捕获正则表达式接受参数,但不将其传递给视图。
r'^[a-zA-Z]{2}/section'
答案 1 :(得分:0)
使用?
:
url(r'^((?P<city>[a-zA-Z]{2})/)?section/', include('section.urls', namespace='section')),
如果未在网址中发送城市,您的视图将会收到city=None