资源失败的 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()
),
当我在我的 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()
),