Я начинаю новый проект с 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
Я вижу, что URL-адрес конечной точки api/items_manager/items/
находится в списке, но с чем-то еще, на что нет ссылок в документации.
Буду признателен за любую идею, как решить эту проблему.