Я пытаюсь создать API, используя django rest Framework.Мне нужно одно представление, чтобы перечислить все элементы в datatable и другое представление, которое выводит данные для отдельного человека на основе их идентификатора.
Представление списка работает в 'api / bios /'.Тем не менее, я получаю следующую ошибку при добавлении идентификатора в URL:
HTTP 404 Не найдено Разрешить: GET, PUT, PATCH, DELETE, HEAD, OPTIONS Тип содержимого: application / json Зависит: Accept
{"detail": "Не найдено".}
views.py
from rest_framework.response import Response
from rest_framework import status
from rest_framework import generics, mixins
from api.models import Playerbios
from api.serializers import USASerializer
class USAListView(mixins.CreateModelMixin, generics.ListAPIView):
lookup_field = 'trackmanid'
serializer_class = USASerializer
def get_queryset(self):
return Playerbios.objects.all()
def perform_create(self, serializer):
serializer.save(user=self.request.user)
def post(self, request, *args, **kwargs):
return self.create(request, *args, **kwargs)
class USAView(generics.RetrieveUpdateDestroyAPIView):
lookup_field = 'trackmanid'
serializer_class = USASerializer
def get_queryset(self):
return Playerbios.objects.all()
serializers.py
from rest_framework import serializers
from api.models import Playerbios
class USASerializer(serializers.ModelSerializer):
class Meta:
model = Playerbios
fields = '__all__'
lookup_field = 'trackmanid'
main / urls.py
from django.contrib import admin
from django.urls import path, include
from api.views import USAView, USAListView
urlpatterns = [
path('admin/', admin.site.urls),
path('api/bios/', include('api.urls')),
path('api/bios/<trackmanid>/', include('api.urls')),
path('accounts/', include('django.contrib.auth.urls')),
path('', include('webapp.urls')),
]
API / urls.py
from django.conf.urls import url, include
from .views import USAView, USAListView
urlpatterns = [
url('(?P<trackmanid>)/', USAView.as_view(), name='usa-rud-view'),
url('', USAListView.as_view(), name='usa-list-view'),
]