Django DRF-如何在api_根目录中反转基于类的视图

Django DRF-如何在api_根目录中反转基于类的视图,django,django-rest-framework,django-views,Django,Django Rest Framework,Django Views,在Django REST框架中,我试图将API根添加到具有基于类的视图的views.py 错误: $ http http://127.0.0.1:8000/api/ Error - django.urls.exceptions.NoReverseMatch: Reverse for 'SnippetListView' not found. 'SnippetList' is not a valid view function or pattern name. 后端/views.py from

在Django REST框架中,我试图将API根添加到具有基于类的视图的views.py

错误:

$ http http://127.0.0.1:8000/api/

Error - django.urls.exceptions.NoReverseMatch: Reverse for 'SnippetListView' not found. 'SnippetList' is not a valid view function or pattern name.
后端/views.py

from backend.models import *
from backend.serializers import *

from rest_framework import generics
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework.reverse import reverse



@api_view(['GET'])
def api_root(request, format=None):
    return Response({
        'snippets': reverse('SnippetList')
        # 'snippets': reverse('SnippetListView')
        # 'snippets': reverse('snippet-list')
        # 'snippets': reverse('snippet_list')
    })


class SnippetList(generics.ListCreateAPIView):
    queryset = Snippet.objects.all()
    serializer_class = SnippetSerializer
from backend import views
from django.urls import path, include
from rest_framework.urlpatterns import format_suffix_patterns

urlpatterns = [
    path('', views.api_root),
    path('snippets/', views.SnippetList.as_view()),
    path('snippets/<int:pk>/', views.SnippetDetail.as_view()),
]
后端/url.py

from backend.models import *
from backend.serializers import *

from rest_framework import generics
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework.reverse import reverse



@api_view(['GET'])
def api_root(request, format=None):
    return Response({
        'snippets': reverse('SnippetList')
        # 'snippets': reverse('SnippetListView')
        # 'snippets': reverse('snippet-list')
        # 'snippets': reverse('snippet_list')
    })


class SnippetList(generics.ListCreateAPIView):
    queryset = Snippet.objects.all()
    serializer_class = SnippetSerializer
from backend import views
from django.urls import path, include
from rest_framework.urlpatterns import format_suffix_patterns

urlpatterns = [
    path('', views.api_root),
    path('snippets/', views.SnippetList.as_view()),
    path('snippets/<int:pk>/', views.SnippetDetail.as_view()),
]
从后端导入视图
从django.url导入路径,包括
从rest\u framework.urlpatterns导入格式\u后缀\u模式
URL模式=[
路径(“”,views.api_root),
路径('snippets/',views.SnippetList.as_view()),
路径('snippets/',views.SnippetDetail.as_view()),
]
文档:

$ http http://127.0.0.1:8000/api/

Error - django.urls.exceptions.NoReverseMatch: Reverse for 'SnippetListView' not found. 'SnippetList' is not a valid view function or pattern name.


您需要命名视图url才能使用相反的名称

#urls.py
path('snippets/', views.SnippetList.as_view(), name='snippet-list'),

#views.py
'snippets': reverse('snippet-list', request=request, format=format)

本教程最初没有为基于类的视图的url命名。

您需要命名视图url才能使用相反的名称

#urls.py
path('snippets/', views.SnippetList.as_view(), name='snippet-list'),

#views.py
'snippets': reverse('snippet-list', request=request, format=format)

本教程最初没有给出基于类的视图的URL的名称。

您显示的文档应该是
reverse('snippet-list',request=request,format=format)
您尝试过吗?@BearBrown是的。基于已解决的第一个字符串的相同错误输出-我需要命名url。它在教程中的位置更靠后<代码>路径('snippets/',views.SnippetList.as_view(),name='snippet-list'),您显示的文档应该是
反向('snippet-list',request=request,format=format)
您尝试过吗?@BearBrown是的。基于已解决的第一个字符串的相同错误输出-我需要命名url。它在教程中的位置更靠后<代码>路径('snippets/',views.SnippetList.as_view(),name='snippet-list'),谢谢!你刚刚救了我的编码事业。太困了,差点就要放弃了。谢谢!你刚刚救了我的编码事业。被困得快要放弃了。