【发布时间】:2014-02-22 15:34:05
【问题描述】:
在使用平面页面时,我很难理解 django 中 url 路由的工作原理,我希望有人可以查看我的代码并解释我做错了什么。
此外,在调试此问题时提供一些建议会非常有帮助 - 理想情况下,当请求成功解决时,我想看看 django 如何达到该解决方案。目前我只看到 404 时尝试的 url 模式。
提前致谢,
在 settings.py 我有 - APPEND_SLASH = True
我有以下 url 结构,在括号中我指出了我认为我的 reg ex 应该做什么..
#urls.py
url(r'^$', home), # (match / and nothing else)
url(r'^fa/$', home), # (match /fa and nothing else)
url(r'^en/$', en_home), # (match /en and nothing else)
url(r'^fa', include('ir_site.urls')), # (match any path like fa/*/)
url(r'^en', include('en_site.urls')), # (match any path like en/*/)
#in ir_site.urls
urlpatterns = patterns('',
url(r'contact/$', views.static_contact) # (match fa/contact)
)
urlpatterns += patterns('django.contrib.flatpages.views',
(r'^(?P<url>.*/)$', 'flatpage'), # (match any fa/*/ not resolved or 404)
)
#in en_site.urls
urlpatterns = patterns('',
url(r'contact/$', views.static_contact) # (match en/contact)
)
urlpatterns += patterns('django.contrib.flatpages.views',
(r'^(?P<url>.*/)$', 'flatpage'), # (match any en/*/ not resolved or 404)
)
我有以下平面页面
/en/test/
/fa/test/
/test/
/en/test2
测试结果:
/ - Fine
/en - Fine
/fa - Fine
/test - Fine
/fa/test - Fine
/en/test - Extra / is appended results in 404
/en/test2 - Fine, but uses the flatpages template in the ir_site app
/en/contact - Fine
/fa/contact - Fine
我感觉问题在于 (r'^fa') 和 (r'^en') 无法正常使用平面页面的全部捕获,但我不知道如何查看 为什么会这样,因为我在这个阶段缺乏任何调试技能。
帮助非常感谢...
【问题讨论】:
标签: django django-urls django-flatpages