我正在使用tastepie为我的应用程序提供API。我更喜欢没有尾部斜杠的 URL。我更喜欢/api/v1/entry/set/1;3
而不是/api/v1/entry/set/1;3/
. 我已经关闭了 django 的APPEND_SLASH并打开了TASTYPIE_ALLOW_MISSING_SLASH。
这很好用,除了 get_multiple (/set),它的文档中的 sweetpie 注释不能在没有尾部斜杠的情况下工作。sweetpie 代码中的 URL 正则表达式是:
# Due to the way Django parses URLs, ``get_multiple`` won't work without
# a trailing slash.
...
url(r"^(?P<resource_name>%s)/set/(?P<%s_list>\w[\w/;-]*)/$" %
(self._meta.resource_name, self._meta.detail_uri_name),
self.wrap_view('get_multiple'), name="api_get_multiple"),
...
我已经证实这是真的。如果启用了 APPEND_SLASH,则匹配良好,但更改/api/v1/notes/set/2;1
上述正则表达式以使其与模式不匹配。/api/v1/notes/set/2;1/
/
/?
当我尝试re
手动使用模块时,模式匹配正确。为什么 django 不匹配没有斜杠的 URL?