django REST urls.py 不解析端点

django REST urls.py does not resolve endpoint

这里是菜鸟。我正在使用 https://github.com/Seedstars/django-react-redux-base,这是一个很棒且直接的 Django REST + React.js 入门项目。这是 Django 1.11。

我的问题是 Django REST 后端没有正确解析 API 端点。我添加了一个应用程序 profiles,它应该 return 一个用户配置文件,当被查询时:

/api/v1/profiles/getprofile/(some_name)

这是我的顶层 urls.py:

from django.conf import settings
from django.conf.urls import include, url
from django.views.decorators.cache import cache_page

from base import views as base_views

urlpatterns = [
    url(r'^api/v1/accounts/', include('accounts.urls', namespace='accounts')),
    url(r'^api/v1/getdata/', include('base.urls', namespace='base')),
    url(r'^api/v1/profiles/', include('profiles.urls', namespace='profiles')),
    url(r'', cache_page(settings.PAGE_CACHE_SECONDS)(base_views.IndexView.as_view()), name='index'),
]

我的profiles/urls.py:

from django.conf.urls import url
from django.utils.translation import ugettext_lazy as _

from . import views

urlpatterns = [
    url(_(r'^getprofile/(?P<display_name>.*)/$'),
        views.PublicProfileView.as_view(),
        name='getprofile'),
]

使用此设置,当我查询 http://localhost:8000/api/v1/profiles/getprofile/test 时,我在响应中得到 IndexView,基本上 html 包含前端。但是,如果我从顶层 urls.py 注释掉 r'',我会得到 'test' 配置文件的预期 JSON 有效载荷数据库。为什么解析器会跳过 r'^api/v1/profiles/ 并直接解析为 r''?我做错了吗?

你能试试下面这些吗:

app_name = getprofile

urlpatterns = [
    url(r'^getprofile/(?P<display_name>.*)/$',views.PublicProfileView.as_view(),name='getprofile'),
]

如果不成功,请给我们错误信息,例如"template does not exist"。

我明白了,这是清除陈旧的 pyc 文件的问题,最重要的是在 API 请求中设置正确的 headers:

要清除 *.pyc 文件:

find . -name "*.pyc" -exec rm '{}' ';'

更正 headers 以请求 JASON 响应:

headers : {
    'Content-Type': 'application/json',
    'Accept': 'application/json'
}