Django API представления 404 не найдено

У меня возникают проблемы. Я могу получить доступ к http://127.0.0.1:8000/api/. Но это возвращает 404 не найдено: http://127.0.0.1:8000/api/projects

Я просмотрел коды и не смог найти никаких ошибок. терминал также показывает следующее при запуске сервера: Not Found: /api/projects/ В чем может быть проблема?

urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.getRoutes),
    path('projects/', views.getProjects),
    path('project/<str:pk>/', views.getProjects),
]

views.py

from rest_framework.decorators import api_view, permission_classes
from rest_framework.permissions import IsAuthenticated, IsAdminUser
from rest_framework.response import Response
from .serializers import ProjectSerializer
from projects.models import Project

@api_view(['GET'])
def getRoutes(request):

    routes = [
        {'GET': '/api/projects'},
        {'GET': '/api/projects/id'},
        {'POST': '/api/projects/id/vote'},

        {'POST': '/api/users/token'},
        {'POST': '/api/users/token/refresh'},
    ]
    return Response(routes)

@api_view(['GET'])
def getProjects(request):
    projects = Project.objects.all()
    serializer = ProjectSerializer(projects, many=True)
    return Response(serializer.data)

Страница 404 ошибки показывает следующее:

Using the URLconf defined in djangoProject1.urls, Django tried these URL patterns, in this order:

    admin/
    projects/
    login/ [name='login']
    logout/ [name='logout']
    register/ [name='register']
    [name='profiles']
    profile/<str:pk> [name='user-profile']
    account/ [name='account']
    edit-account/ [name='edit-account']
    create-skill/ [name='create-skill']
    update-skill/<str:pk>/ [name='update-skill']
    delete-skill/<str:pk>/ [name='delete-skill']
    inbox/ [name='inbox']
    message/<str:pk>/ [name='message']
    create-message/<str:pk>/ [name='create-message']
    api
    api projects/
    api project/<str:pk>/
    reset_password/ [name='reset_password']
    reset_password_sent/ [name='password_reset_done']
    reset/<uidb64>/<token>/ [name='password_reset_confirm']
    reset_password_complete/ [name='password_reset_complete']
    ^images/(?P<path>.*)$
    ^static/(?P<path>.*)$

The current path, api/projects/, didn’t match any of these.

Нашел ответ на свои собственные проблемы. Мне не хватало / в основной папке проекта url.py

пропущенная косая черта

Вы пропустили косой удар: http://127.0.0.1:8000/api/projects/

Чтобы предотвратить эту проблему в следующий раз, добавьте APPEND_SLASH = True в свои settings.py

APPEND_SLASH

Вернуться на верх