Jonathan Viccary
Jonathan Viccary

Reputation: 732

Django: Page Not Found

I'm getting a 404 from Django and none of the previous posts on the subject (of which there are many) seem to have helped.

views.py

from django.views.generic.detail import DetailView, SingleObjectMixin
from app.models import MyModel

class MyDetails(DetailView, SingleObjectMixin):
    template_name = "app/my_view.html"
    model = MyModel

urls.py

from django.conf.urls import include, url
from django.contrib   import admin
from app.views import MainList, post_form_upload, MyDetails

urlpatterns = [
    url(r'^$', MainList.as_view(), name="main_list"),
    url(r'^add_something$', post_form_upload, name="add_something"),
    url(r'^my_details/(?P<pk>\d+)$', MyDetails.as_view(), name="my_details"),
]

app/urls.py

from django.conf.urls  import url
from django.conf.urls import include, url
from django.contrib   import admin

urlpatterns = [
    (r'^$', include('app.urls')),
    url(r'^admin/', include(admin.site.urls)),
]

when I enter the URL: http://localhost:8000/my_details, I get the following error:

Using the URLconf defined in app.urls, Django tried these URL patterns, in this order:
^$ [name='main_list']
^add_something$ [name='add_something']
^my_details/(?P<pk>\d+)$ [name='my_details']
The current URL, my_details, didn't match any of these.

The other two URLs (/ and /add_something) work fine.

Upvotes: 0

Views: 926

Answers (1)

karthikr
karthikr

Reputation: 99670

First of all, not sure how you are not running into this issue, but in your app/urls.py

(r'^$', include('app.urls')),

should be

(r'^/', include('app.urls')),

$ indicates the end of regex pattern, and anything inside include() would not be included.

Secondly, None of your URL patterns match my_details/ They only match my_details/<id>

A little more on the documentation of URL regex, etc..

Upvotes: 2

Related Questions