2012-06-12 2 views
1

내 응용 프로그램 용 API를 제공하기 위해 tastypie을 사용하고 있습니다. 나는 슬래시가없는 URL을 선호한다. 나는 /api/v1/entry/set/1;3/ 대신에 /api/v1/entry/set/1;3을 선호합니다. 나는 장고의 APPEND_SLASH을 끄고 TASTYPIE_ALLOW_MISSING_SLASH을 켰다.django URL 정규식 선택적 match (tastypie)

get_multiple (/ set)을 제외한 멋지게 작동합니다. 설명서의 tastypie 노트는 슬래시없이 작동하지 않습니다. tastypie 코드의 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"), 
... 

본인은 이것이 사실임을 확인했습니다. /api/v1/notes/set/2;1/api/v1/notes/set/2;1/은 APPEND_SLASH가 사용 설정되어 있으면 잘 맞지만 위의 정규식에서 //?으로 변경하면 django가 패턴과 일치하지 않게됩니다.

re 모듈을 수동으로 사용해 보면 패턴이 올바르게 일치합니다. 왜 장고는 후행 슬래시없이 URL을 일치시키지 않습니까?

+0

제대로 된 것처럼 보입니다. 아마 당신이 올바른 코드를 업데이 트하지 않을 거라 생각할 수 있습니다 ...보고 어리석은 무언가로 정규식을 대체보십시오. –

+0

올바른 코드를 편집하고 있는지 확인했습니다. 코멘트는이 행동이 일어날 것으로 예상되는 것을 나타냅니다. 내가 실제로 가지고있는 질문은 왜 – jterrace

+0

맛있는 파이가 일을 좋아하는 것입니다. 그것은 정말로 짜증나게합니다. –

답변

0

이 문제가 해결되었습니다. 내 pull request이 2012 년 6 월 14 일에 병합되었습니다.