如何修复Django Rest框架中的“找不到错误路径”

时间:2019-02-10 10:08:11

标签: django django-rest-framework

我正在尝试使用Django rest框架构建博客网站的API,但是我的URL不匹配。

我第一次尝试使用Django Rest框架,因此无法完全解决此问题。但是我想我在url_patterns中弄乱了。

这是主目录(包含settings.py的目录)中的URL代码。 `

from django.conf.urls import url,include
from django.contrib import admin
from django.urls import path, include
from blog import views

from rest_framework import routers
router = routers.DefaultRouter()
router.register(r'apipost',views.PostViewSet)

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'',include('blog.urls')),
    path('api-auth/',include('rest_framework.urls',namespace='rest_framework')),
]

`

我正在尝试使用网址http://127.0.0.1:8000/apipost,并希望以json格式获取价值。

2 个答案:

答案 0 :(得分:2)

您需要将router.urls添加到您的urlpatterns中。

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'',include('blog.urls')),
    path('api-auth/',include('rest_framework.urls',namespace='rest_framework')),
]

urlpatterns += router.urls

答案 1 :(得分:0)

Django REST Framework不会在urlpatterns中神奇地注册您的路由器,您必须自己完成。如果要将urlpatterns += router.urls添加到urlpatterns的根目录,则可以使用url(r'^api/', include((router.urls, 'app_name'))),,如果要为其设置子路径,则可以使用AucOn