당신은 tastypie.Resource.prepend_urls
방법을 사용할 수 있습니다
from django.conf.urls import url
from tastypie.utils import trailing_slash
class MyResource(Resource):
def prepend_urls(self):
return [
url(r"^(?P<resource_name>%s)/(?P<%s>.*?)/user%s$" % (self._meta.resource_name, self._meta.detail_uri_name, trailing_slash()), self.wrap_view('group_user'), name="api_group_user"),
]
def group_user(self, request, **kwargs):
# Your API view.
return self.create_response(request, {})
내가 일반적으로 바로 가기 방법을 만들을하는 그 긴, 추악한 URL을 :
def create_detail_url(url_string, view_method_name, view_name):
url_string = r"^(?P<resource_name>%s)/(?P<%s>.*?)" + url_string + r"%s$"
url_string = url_string % (self._meta.resource_name, self._meta.detail_uri_name, trailing_slash())
return url(url_string, self.wrap_view(view_method_name), name="api_" + view_name)
가 prepend_urls
방법 모양과 같이한다 :
def prepend_urls(self):
return [
create_detail_url(r"/user", "group_user", "group_user"),
]
이게 정말 도움이 되네, ~~ –
글쎄, 그것은 보인다 원래 DETAIL URL, 즉^(P % s)/(? P % s)가 없으므로 hat^(? P % s)/(? P <%s>. *?)/user % s $에 연결할 수 없습니다. P <%s> \ w [\ w/-] *) % s $가 그것을 대신합니다. –
@EricZheng,'prepend_urls' 메소드는 일반 URL보다 먼저 결과 목록을 삽입하므로 일반 URL보다 우선합니다. 'prepend_urls'에서 세부 URL에 사용자 정의보기를 추가하여 확인할 수 있습니다. –