【发布时间】:2018-07-07 13:38:26
【问题描述】:
这里是菜鸟。我正在使用https://github.com/Seedstars/django-react-redux-base,这是一个很棒且直接的 Django REST + React.js 入门项目。这是 Django 1.11。
我的问题是 Django REST 后端没有正确解析 API 端点。我添加了一个应用程序profiles,当被查询时应该返回一个用户配置文件:
/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'',我会得到数据库中“测试”配置文件的预期 JSON 有效负载。为什么解析器会跳过 r'^api/v1/profiles/ 并直接解析为 r''?我做错了吗?
【问题讨论】:
-
请将您的答案发布为答案,并将其标记为已接受,以便浏览的人可以看到此问题已解决。
标签: python django django-rest-framework django-urls