NoReverseMatch at /

时间:2017-02-01 01:55:23

标签: python django

我在网站的主页上收到此错误:

的NoReverseMatch

使用参数'()'和找不到关键字参数'{}来反转'admin'。尝试了0种模式:[]。

这是我的urls.py:

from django.conf.urls import url
from django.contrib import admin
from rest_framework.urlpatterns import format_suffix_patterns
from rest_framework import routers
from . import views

router = routers.SimpleRouter()
router.register(r'queue', views.QueueItemViewSet)
router.register(r'label', views.EventLabelViewSet)
urlpatterns = router.urls

urlpatterns += [
    url(r'^$', views.api_root),
    url(r'^fingerprint/submit/$', views.FingerprintSubmit.as_view(),
        name="fingerprint-submit"),
    url(r'^fingerprint/rebuild/$', views.RebuildFingerprints.as_view(),
        name="fingerprint-rebuild"),
    url(r'^admin/', admin.site.urls, name="admin"),
]

urlpatterns = format_suffix_patterns(urlpatterns)

这是令人讨厌的views.py片段:

@api_view(['GET'])
def api_root(request, format=None):
    """
    Home page of the API
    """
    return Response({
        'admin': reverse('admin', request=request, format=format)})

最后,追溯:

Environment:


Request Method: GET
Request URL: http://128.31.25.88:8000/

Django Version: 1.10.5
Python Version: 3.4.3
Installed Applications:
['deltasherlock_server.apps.DeltasherlockServerConfig',
 'rest_framework',
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback:

File "/usr/local/lib/python3.4/dist-packages/django/core/handlers/exception.py" in inner
  39.             response = get_response(request)

File "/usr/local/lib/python3.4/dist-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "/usr/local/lib/python3.4/dist-packages/django/core/handlers/base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/usr/local/lib/python3.4/dist-packages/django/views/decorators/csrf.py" in wrapped_view
  58.         return view_func(*args, **kwargs)

File "/usr/local/lib/python3.4/dist-packages/django/views/generic/base.py" in view
  68.             return self.dispatch(request, *args, **kwargs)

File "/usr/local/lib/python3.4/dist-packages/rest_framework/views.py" in dispatch
  477.             response = self.handle_exception(exc)

File "/usr/local/lib/python3.4/dist-packages/rest_framework/views.py" in handle_exception
  437.             self.raise_uncaught_exception(exc)

File "/usr/local/lib/python3.4/dist-packages/rest_framework/views.py" in dispatch
  474.             response = handler(request, *args, **kwargs)

File "/usr/local/lib/python3.4/dist-packages/rest_framework/decorators.py" in handler
  52.             return func(*args, **kwargs)

File "/home/ubuntu/django-server/deltasherlock_server/views.py" in api_root
  29.         'admin': reverse('admin', request=request, format=format),

File "/usr/local/lib/python3.4/dist-packages/rest_framework/reverse.py" in reverse
  50.         url = _reverse(viewname, args, kwargs, request, format, **extra)

File "/usr/local/lib/python3.4/dist-packages/rest_framework/reverse.py" in _reverse
  63.     url = django_reverse(viewname, args=args, kwargs=kwargs, **extra)

File "/usr/local/lib/python3.4/dist-packages/django/urls/base.py" in reverse
  91.     return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))

File "/usr/local/lib/python3.4/dist-packages/django/urls/resolvers.py" in _reverse_with_prefix
  392.             (lookup_view_s, args, kwargs, len(patterns), patterns)

Exception Type: NoReverseMatch at /
Exception Value: Reverse for 'admin' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []

我查看了其他帖子,但没有发现任何有用的信息,我刚加入这个项目,所以我不知道原来程序员在这里尝试做什么。

1 个答案:

答案 0 :(得分:2)

admin.site.urls不是视图,它是URL配置文件,其URL名称空间为admin。它有点不同,因为你不应该使用include(),但是在其他方面它就像包含不同的URLconf一样。

由于它是一个包含,name参数绝对没有效果。

要反转管理员的主页面,请使用:

return Response({
    'admin': reverse('admin:index', request=request, format=format),
})

可以找到管理员网址的完整列表in the docs