python - django_tastypie 无法识别网址
问题描述
我正在使用Django和neo4j开始一个新项目,开发 REST 服务最有前途的库是TastyPie(Django Rest Framework与 ORM 绑定,neo4j不是关系数据库)。
我正在关注本教程以使TastyPîe与非关系数据库一起使用,并且我已经覆盖了 get 方法,但是在尝试访问端点时出现此错误:
Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8000/api/items_manager/items/
Using the URLconf defined in AttractoraGraph.urls, Django tried these URL patterns, in this order:
admin/
api/ general/
api/ items_manager/ items/ ^(?P<resource_name>item)/$ [name='api_dispatch_list']
api/ items_manager/ items/ ^(?P<resource_name>item)/schema/$ [name='api_get_schema']
api/ items_manager/ items/ ^(?P<resource_name>item)/set/(?P<pk_list>.*?)/$ [name='api_get_multiple']
api/ items_manager/ items/ ^(?P<resource_name>item)/(?P<pk>.*?)/$ [name='api_dispatch_detail']
The current path, api/items_manager/items/, didn't match any of these.
这是我的一般urls.py:
from django.contrib import admin
from django.urls import path
from django.urls import path, include
api_url_patterns = [
path('general/', include('GeneralApp.urls')),
path('items_manager/', include('ItemsManagerApp.urls')),
]
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include(api_url_patterns)),
这是我的应用程序的urls.py:
from django.urls import path, include
from ItemsManagerApp import resources
urlpatterns = [
path('items/', include(resources.ItemResource().urls)),
]
这是我的resources.py:
from tastypie import fields, utils
from tastypie.authorization import Authorization
from tastypie.resources import Resource
from ItemsManagerApp import models
class ItemResource(Resource):
uid = fields.CharField(attribute='uid')
name = fields.CharField(attribute='name')
description = fields.CharField(attribute='description')
created = fields.DateTimeField(default=utils.now, attribute='created')
def get_object_list(self, request):
return list(Item.nodes.all())
def obj_get_list(self, bundle, **kwargs):
return self.get_object_list(bundle.request)
def obj_get(self, bundle, **kwargs):
item = Item.nodes.filter(uid=kwargs['pk'])
return item
我可以看到端点 urlapi/items_manager/items/
在列表中,但还有其他文档中未引用的内容。
我会很感激任何关于如何解决这个问题的想法。
解决方案
在这种情况下,您可以尝试访问此端点http://127.0.0.1:8000/api/items_manager/items/item/
。
也许本教程可以帮助你。
推荐阅读
- jquery - 如何在 jQuery AJAX 调用中使用数据参数变量?
- javascript - Quasar QSelect 与多选,不显示异步选定的值
- javascript - 如何使用正则表达式查找属于同一子网的 IP 地址的频率?
- python-3.x - 用于 s3 上传的 AWS lambda 函数 - Python 3.8
- ubuntu - `npm start` 后终端不显示输出
- java - 如何根据内部列表的属性之一获取列表中的唯一元素
- linux - 了解 vmstat 内存利用率的输出
- logstash - 如何在文件输入插件logstash内的编解码器插件中获取日志文件名
- c++ - 混合用户线程和 OpenCV 内置多线程
- java - 如何切换数组中的两个组件?