【问题标题】:Django Path To Resource Failure?资源失败的Django路径?
【发布时间】:2018-06-04 08:09:05
【问题描述】:

当我在我的一个 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/ 似乎工作正常.. 为什么会这样?

【问题讨论】:

  • path 末尾有反斜杠 /。你试过127.0.0.1:8000/api/ 吗?
  • 你也可以添加NoteResource吗?
  • @SijanBhandari 仍然是带有 / 的 404 错误
  • @JishnunandPk 刚刚添加!
  • 为什么你在使用 sweetpie 时将其标记为 DRF?

标签: python django api django-rest-framework drf-queryset


【解决方案1】:

您还应该在note_resource.urls 中有一个网址条目,仅用于/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()
    ),

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 2013-03-20
    • 2014-05-05
    相关资源
    最近更新 更多