如何在Django URL中使用点?

时间:2018-07-11 15:13:45

标签: python django django-rest-framework

我正在使用以下URL模式访问我的API。

urlpatterns = [
  url(r'^admin/', admin.site.urls),
  url(r'^api_module/api/1.0/', include(router.urls, namespace='api')),
]

我通过在Swagger中发布以下数据来创建SQL数据。

{
  "description": "My Test",
  "name": "SK.Test"
}

但是在通过Id方法GET访问时,我将ID命名为SK.Test,但我得到api not found错误。像这样

" Not Found : /api_module/api/1.0/mytest/SK.Test "

但是如果创建类似

{
  "description": "My Test",
  "name": "SK_Test"
}

我可以在运行时通过以下API获取详细信息。

/api_module/api/1.0/mytest/SK_Test

我想通过使用点号的id方法获取详细信息。希望你理解我的问题。有人可以澄清我的疑问吗?

1 个答案:

答案 0 :(得分:1)

默认路由器专门从其匹配的模式中排除点。如果要包括它们,则需要在视图集中定义lookup_value_regex

class MyViewset(viewsets.GenericViewSet):
    lookup_value_regex = r"[\w.]+"