资源失败的 Django 路径?

Django Path To Resource Failure?

当我在我的 API 端点之一上尝试 GET 请求时,它找不到端点。

urls.py 文件看起来像这样

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 看起来像这样

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

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

知道为什么会这样吗?

解决方案:看起来 http://127.0.0.1:8000/api/note/ 工作正常.. 为什么会这样?

您还应该在 note_resource.urls 中有一个 url 条目,仅用于 /api 请求。类似于

path('api/', APIClass).

但是,您永远不需要那个端点。因为,/api 并不代表您系统中的任何实际请求。

我宁愿建议有以下端点:

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

在你的主要 urls.py.

这样您就可以在主 urls.py 文件中有多个 url 代表每个应用程序。

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

并且,您将在 app urls.py 文件中管理其他端点:

#创建新笔记

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