Django urls.py查询

时间:2013-08-04 04:16:51

标签: django django-urls

我想在浏览仪表板页面上的链接时,网址应为/dashboard/link。 当我写url(r'dashboard/inbox/','apps.dashboard.views.inbox', name = 'grabhalo_inbox'),时,它会读取我提供的views参数。

相反,当我写url(r'inbox/','apps.dashboard.views.inbox', name = 'grabhalo_inbox'),时,我得到预期的输出,但网址是/inbox。我想要的是/dashboard/inbox

我哪里出错了?

这是我的根 urls.py 文件

urlpatterns = patterns('',
    (r'^',include('apps.auth.urls')),
    (r'^',include('apps.dashboard.urls')),
    (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root':settings.MEDIA_ROOT}),
    url(r'^admin/', include(admin.site.urls)),
)

这是我的dashboard.urls.py

urlpatterns = patterns('',
    url(r'dashboard/','apps.dashboard.views.dashboard', name = 'grabhalo_dashboard'),
    url(r'sent/','apps.dashboard.views.sent', name = 'grabhalo_sent'),
    url(r'inbox/','apps.dashboard.views.inbox', name = 'grabhalo_inbox'),
    )

1 个答案:

答案 0 :(得分:1)

只需将^$(字符串的开头和结尾)添加到dashboard/网址正则表达式:

urlpatterns = patterns('',
    url(r'^dashboard/$','apps.dashboard.views.dashboard', name = 'grabhalo_dashboard'),
    url(r'^sent/$','apps.dashboard.views.sent', name = 'grabhalo_sent'),
    url(r'^dashboard/inbox/$','apps.dashboard.views.inbox', name = 'grabhalo_inbox'),
    )

然后,http://mydomain.com/dashboard/将由apps.dashboard.views.dashboard视图,http://mydomain.com/dashboard/inbox/ - apps.dashboard.views.inbox处理。