Praful Bagai
Praful Bagai

Reputation: 17402

Django urls.py query

I want that upon browsing a link from my dashboard page, the url should be /dashboard/link. When I write url(r'dashboard/inbox/','apps.dashboard.views.inbox', name = 'grabhalo_inbox'), it does reads my views argument provided.

Instead when I write url(r'inbox/','apps.dashboard.views.inbox', name = 'grabhalo_inbox'), I get the expected output , but the url is /inbox. What I want is /dashboard/inbox.

Where i'm going wrong?

Here is my root urls.py file

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)),
)

Here is my 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'),
    )

Upvotes: 1

Views: 93

Answers (1)

alecxe
alecxe

Reputation: 474141

Just add ^ and $ (start and end of a string) to your dashboard/ url regex:

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'),
    )

Then, http://mydomain.com/dashboard/ will be handled by apps.dashboard.views.dashboard view, http://mydomain.com/dashboard/inbox/ - by apps.dashboard.views.inbox.

Upvotes: 1

Related Questions