Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django.url.exceptions.NoReverseMatch:与#x27相反;用户列表';没有找到';用户列表';不是有效的视图函数或模式名称_Django_Django Rest Framework - Fatal编程技术网

django.url.exceptions.NoReverseMatch:与#x27相反;用户列表';没有找到';用户列表';不是有效的视图函数或模式名称

django.url.exceptions.NoReverseMatch:与#x27相反;用户列表';没有找到';用户列表';不是有效的视图函数或模式名称,django,django-rest-framework,Django,Django Rest Framework,教程5:关系和超链接API错误 教程链接地址为: 我尝试了与查询相关的解决方案,在stackoverflow上遇到了类似的问题,但经过测试,我仍然无法使用它们 views.py class SnippetList(generics.ListCreateAPIView): queryset = Snippet.objects.all() serializer_class = SnippetSerializer permission_classes = (permission

教程5:关系和超链接API错误 教程链接地址为: 我尝试了与查询相关的解决方案,在stackoverflow上遇到了类似的问题,但经过测试,我仍然无法使用它们

views.py

class SnippetList(generics.ListCreateAPIView):
    queryset = Snippet.objects.all()
    serializer_class = SnippetSerializer
    permission_classes = (permissions.IsAuthenticatedOrReadOnly,)

    def perform_create(self, serializer):
        serializer.save(owner=self.request.user)
class SnippetDetail(generics.RetrieveDestroyAPIView):
    queryset = Snippet.objects.all()
    serializer_class = SnippetSerializer
    permission_classes = (permissions.IsAuthenticatedOrReadOnly, IsOwnerOrReadOnly)


class UserList(generics.ListAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer


class UserDetail(generics.RetrieveAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer


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


class SnippetHighlight(generics.GenericAPIView):
    queryset = Snippet.objects.all()
    renderer_classes = [renderers.StaticHTMLRenderer]

    def get(self, request, *args, **kwargs):
        snippet = self.get_object()
        return Response(snippet.highlighted)
url.py

urlpatterns = format_suffix_patterns([
    path('', views.api_root),
    path('snippets/', views.SnippetList.as_view(), name='snippet-list'),
    path('snippets/<int:pk>/', views.SnippetDetail.as_view(), name='snippet-detail'),
    path('snippets/<int:pk>/highlight/',  views.SnippetHighlight.as_view(), name='snippet-highlight'),
    path('users/', views.UserList.as_view(), name='user-list'),
    path('users/<int:pk>/', views.UserDetail.as_view(), name='user-detail'),
])
urlpatterns += [
    path(r'api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
回溯错误:

Traceback:
File "C:\Anaconda3\envs\python36\lib\site-packages\django\core\handlers\exception.py" in inner 34. response = get_response(request)

File "C:\Anaconda3\envs\python36\lib\site-packages\django\core\handlers\base.py" in _get_response 126. response = self.process_exception_by_middleware(e, request)

File "C:\Anaconda3\envs\python36\lib\site-packages\django\core\handlers\base.py" in _get_response 124. response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "C:\Anaconda3\envs\python36\lib\site-packages\django\views\decorators\csrf.py" in wrapped_view 54. return view_func(*args, **kwargs)

File "C:\Anaconda3\envs\python36\lib\site-packages\django\views\generic\base.py" in view 68. return self.dispatch(request, *args, **kwargs)

File "C:\Anaconda3\envs\python36\lib\site-packages\rest_framework\views.py" in dispatch 505. response = self.handle_exception(exc)

File "C:\Anaconda3\envs\python36\lib\site-packages\rest_framework\views.py" in handle_exception 465. self.raise_uncaught_exception(exc)

File "C:\Anaconda3\envs\python36\lib\site-packages\rest_framework\views.py" in raise_uncaught_exception 476. raise exc

File "C:\Anaconda3\envs\python36\lib\site-packages\rest_framework\views.py" in dispatch 502. response = handler(request, *args, **kwargs)

File "C:\Anaconda3\envs\python36\lib\site-packages\rest_framework\decorators.py" in handler 50. return func(*args, **kwargs)

File "C:\Users\Ze Ran Lu\Desktop\swie\text\tutorials\snippets\views.py" in api_root 205. 'users': reverse('user-list'),

File "C:\Anaconda3\envs\python36\lib\site-packages\rest_framework\reverse.py" in reverse 47. url = _reverse(viewname, args, kwargs, request, format, **extra)

File "C:\Anaconda3\envs\python36\lib\site-packages\rest_framework\reverse.py" in _reverse 60. url = django_reverse(viewname, args=args, kwargs=kwargs, **extra)

File "C:\Anaconda3\envs\python36\lib\site-packages\django\urls\base.py" in reverse 90. return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))

File "C:\Anaconda3\envs\python36\lib\site-packages\django\urls\resolvers.py" in _reverse_with_prefix 622. raise NoReverseMatch(msg)

Exception Type: NoReverseMatch at / Exception Value: Reverse for 'user-list' not found. 'user-list' is not a valid view function or pattern name.

反向仅接受以下参数:

反向(viewname,urlconf=None,args=None,kwargs=None, 当前(应用程序=无)

而且您的
用户/
不接受任何参数,因此您只需要反向使用url名称

reverse('user-list')
内部服务器错误:/ 回溯(最近一次呼叫最后一次): 文件“C:\Anaconda3\envs\python36\lib\site packages\django\core\handlers\exception.py”,第34行,在内部 响应=获取响应(请求) 文件“C:\Anaconda3\envs\python36\lib\site packages\django\core\handlers\base.py”,第126行,在get响应中 response=self.process\u异常\u由\u中间件(e,请求) 文件“C:\Anaconda3\envs\python36\lib\site packages\django\core\handlers\base.py”,第124行,在get响应中 响应=包装的回调(请求,*回调参数,**回调参数) 文件“C:\Anaconda3\envs\python36\lib\site packages\django\views\decorators\csrf.py”,第54行,在包装视图中 返回视图函数(*args,**kwargs) 文件“C:\Anaconda3\envs\python36\lib\site packages\django\views\generic\base.py”,第68行,在视图中 返回自调度(请求,*args,**kwargs) 文件“C:\Anaconda3\envs\python36\lib\site packages\rest\u framework\views.py”,第505行,在分派中 响应=自身处理异常(exc) 句柄异常中的文件“C:\Anaconda3\envs\python36\lib\site packages\rest\u framework\views.py”,第465行 自举未捕获异常(exc) 文件“C:\Anaconda3\envs\python36\lib\site packages\rest\u framework\views.py”,第476行,在raise\u uncaught\u异常中 加薪 文件“C:\Anaconda3\envs\python36\lib\site packages\rest\u framework\views.py”,第502行,在分派中 响应=处理程序(请求、*args、**kwargs) 处理程序中第50行的文件“C:\Anaconda3\envs\python36\lib\site packages\rest\u framework\decorators.py” 返回函数(*args,**kwargs) 文件“C:\Users\Ze-Ran-Lu\Desktop\swie\text\tutorials\snippets\views.py”,第205行,在api\u根目录中 “用户”:反向(“用户列表”), 文件“C:\Anaconda3\envs\python36\lib\site packages\rest\u framework\reverse.py”,第47行,格式相反 url=_反向(视图名称、参数、kwargs、请求、格式,**额外) 文件“C:\Anaconda3\envs\python36\lib\site packages\rest\u framework\reverse.py”,第60行,反向 url=django_反向(视图名称,args=args,kwargs=kwargs,**额外) 文件“C:\Anaconda3\envs\python36\lib\site packages\django\url\base.py”,第90行,相反 将iri_返回到_uri(解析器。_使用_前缀反向_(视图,前缀,*args,**kwargs)) 文件“C:\Anaconda3\envs\python36\lib\site packages\django\url\resolvers.py”,第622行,在带有前缀的\u reverse\u中 提升NoReverseMatch(msg) django.urls.exceptions.NoReverseMatch:找不到“用户列表”的反向“用户列表”不是有效的视图函数或模式名称。

另一个url.py文件是

from django.contrib import admin
from django.urls import path
from django.urls import include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('snippets.urls'))
]
项目结构

教程 |_片段 ||_url.py ||_views.py ||_models.py ||_apps.py |||u admin.py |_教程 |_url.py |_设置.py
|_wsgi.py

根据您提供的方法修改后,仍然会报告相同的错误@api_view(['GET'])def api_root(request,format=None):返回响应({'users':reverse('user-list'),'snippets':reverse('snippet-list'),})django.url.exceptions.NoReverseMatch:reverse for'user list'未找到'“用户列表”不是有效的视图函数或模式名称如果是,那么您可以发布得到的完整回溯错误吗?可能有助于指出错误来自模板或视图完整的回溯太长,我在下面添加了一个答案模块版本为Django 2.1 djangorestframework 3.10.3@hewm是否有其他URL.py文件作为根文件并在文件s上使用include?
from django.contrib import admin
from django.urls import path
from django.urls import include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('snippets.urls'))
]