Search code examples
pythondjangoapidjango-rest-frameworkdrf-queryset

Django Path To Resource Failure?


When I try a GET request on one of my API endpoints it can't find the endpoint.

Why is this happening, shouldn't it match?

urls.py file looks like this

from django.urls import path, include
from django.contrib import admin
from api.resources import NoteResource

note_resource = NoteResource()

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include(note_resource.urls)),
]

api.resources looks like this

from tastypie.resources import ModelResource
from api.models import Note

class NoteResource(ModelResource):
    class Meta:
        queryset = Note.objects.all()
        resource_name = 'note'

Any idea why this is happening?

Solution: It appears that http://127.0.0.1:8000/api/note/ works properly.. why would this be?


Solution

  • You should also have one url entry in note_resource.urls for only /api request. Something similar to

    path('api/', APIClass).

    But, you never need that endpoint. Because, /api does not represent any actual request in your system.

    I rather suggest to have following endpoints :

    path('api/notes/',include(note_resource.urls))
    

    in your main urls.py.

    So that you can have multiple urls in main urls.py file representing each app.

     path('api/<APP_NAME>(s)/',include(<APP_NAME>.urls))
    

    And, you will manage other endpoints in your app urls.py file:

    # Create a new Note

    path(
            'create/',
            NoteCreate.as_view()
        ),