Tastypie-Mailinglist를 읽는 사람이 있으면 누구나 답변을 얻지 못했습니다. 여기에 교차 게시를 위해 미안합니다.get_resource_uri에 역방향 URL을 작성하십시오.
Tastypie에서 나는 PK보다 다른 키를 사용하기 때문에 Resource의 URL 패턴을 변경했습니다. 이 리소스에 액세스 할 때 잘 작동합니다. 이제이 리소스를 상위 리소스에 중첩하려고하지만 내포 된 리소스에 내 사용자 지정 키가 아닌 PK가 포함 된 URI가 포함되어 있습니다. 내가 배운 것은 내 경우에 자식의 get_resource_uri를 변경해야한다는 것이다.
(A NamespacedResource입니다) 자녀의 자원의 방법은 다음과 같습니다
def override_urls(self):
return [
url(r"^(?P<resource_name>%s)/(?P<custom_id>[-_\w\d]+)%s$" % (
self._meta.resource_name,
trailing_slash()
),
self.wrap_view('dispatch_detail'),
name="api_dispatch_detail"
),
]
그러나 응용 프로그램이 URL을 취소 할 수 없습니다 :
def get_resource_uri(self, bundle_or_obj):
obj = bundle_or_obj.obj if isinstance(bundle_or_obj, Bundle) else bundle_or_obj
kwargs={
'resource_name': self._meta.resource_name,
'custom_id': obj.custom_id
}
return self._build_reverse_url('api_dispatch_detail', kwargs=kwargs)
아이의 URL 재정의 방법이있다. 이 오류가 발생합니다 :
Reverse for 'api_dispatch_detail' with arguments '()' and keyword arguments '{'custom_id': u'3_ee5-4423', 'resource_name': 'myresource'} not found.
어떻게하면 URL을 바꿀 수 있습니까?
미리 감사드립니다.
완벽한, 감사합니다! – schneck