Django 无法将API URL传递到REST API应用程序

Django 无法将API URL传递到REST API应用程序,django,Django,我将Django项目分为三个应用程序: 前端:你猜对了,纯前端 共享的东西:这就是我放置模型的地方,因为我觉得它们以后可能会在应用程序之间共享 restapi:restapi 这三个应用程序也都在settings.py中注册 现在我的问题是rest\u api应用程序的URL也由frontend应用程序提供服务。下面是我的主url.py的外观: urlpatterns = [ url(r'^api/v1', include('rest_api.urls')), url

我将Django项目分为三个应用程序:

  • 前端:你猜对了,纯前端
  • 共享的东西:这就是我放置模型的地方,因为我觉得它们以后可能会在应用程序之间共享
  • restapi:restapi
这三个应用程序也都在
settings.py
中注册

现在我的问题是
rest\u api
应用程序的URL也由
frontend
应用程序提供服务。下面是我的主
url.py
的外观:

urlpatterns = [    
    url(r'^api/v1', include('rest_api.urls')),
    url(r'^', include('frontend.urls')),
]
我做错什么了吗?请随时询问更多信息

试试这个:
url(r'^/api/v1',include('rest\u api.url'))
。只需在图案中添加一条前斜线


当您访问
http://host/api/v1/xxx
,django将使用
/api/v1/xxx
来匹配模式。但是
^api/v1
由于缺少前斜杠而导致匹配失败。

您是说当您访问
/api/v1/xxxx/
时,前端应用程序会处理请求?@hsfzxjy是的。例如,
events
是前端和API的端点。当我访问
/api/v1/events
时,我在/events处收到了页面的HTML:|你能显示“rest\u api.url”吗?@AndreyShipilov是的,这就是问题所在。请参阅我对用户hsfzxjy回答的评论。我应该删除这个问题吗?哦,这通常是正斜杠问题。我会在根URL.py中添加斜杠,并将其从路由器注册表中删除:),这样您就有了可移植的代码。对不起,不起作用。此外,它还使Django发出警告:
?:(URL.W002)您的URL模式“^/api/v1”有一个以“/”开头的正则表达式。删除此斜杠,因为它是不必要的。如果此模式以include()为目标,请确保include()模式后面有一个“/”。
我想我已经成功了。问题出在我的RESTAPI URL中。我已经完成了路由器。注册(r'events',EventViewSet),并将其更改为
/events
似乎可以正常工作。很抱歉给您添了这么多麻烦!:-)