Tastypie 및 Django를 실험하고 있으며 수행 할 수 있는지 궁금합니다. 설명해 드리겠습니다 ...사용자를 생성하기 위해 특정 HTTP 메소드에 대해 tastypie의 기본 인증을 사용하지 않음
내 API의 일부로 사용자 지정 사용자 자원 (및 모델)이 있습니다. 이 리소스를 통해 사용자를 업데이트 할 수 있기를 바랍니다. 사용자가 소유자 만 업데이트 할 수 있도록하기 위해 tastypie.authentication.BasicAuthentication
을 사용 설정했습니다 (put_detail
방법을 통해 이루어짐).
문제는이 리소스를 통해 사용자를 만들 수 있기를 원합니다.이 리소스에 액세스하려면 로그인 자격 증명이 필요하므로 BasicAuthentication
때문에 완료 할 수 없습니다.
그래서, 나는 다음과 같은 옵션을 가지고있는 것처럼 느낄 : POST 요청에 대한
- 어떻게 든 비활성화 인증 (I 무엇을 시도했다에서 가능하지 않는 것).
- 인증 양식이 없지만 POST 요청 만 허용하는 두 번째 모델 리소스를 만듭니다 (이 시도했지만 다음 문제가 발생했습니다).
- 원본 모델 리소스의 이름은
user
입니다. 이상적으로이 두 번째 리소스의 이름을user/create
으로 지정하고 싶지만 URL은user
모델로 선택되었으므로 절대로 올바르게 해결되지 않습니다. tastypie가로 해석 때문에 내가 두번째 접근 방식을 시도한 것입니다
- 원본 모델 리소스의 이름은
...
class UserResource(ModelResource):
...
class Meta:
resource_name = 'users'
queryset = CustomUser.objects.all()
authentication = BasicAuthentication()
detail_allowed_methods = ['get', 'put']
def put_detail(self, request, **kwargs):
# stub
return HttpAccepted('User updated.')
class CreateUserResource(ModelResource):
class Meta:
resource_name = 'users/create'
queryset = CustomUser.objects.all()
# No authentication
list_allowed_methods = ['post']
def post_list(self, request, **kwargs):
# stub
return HttpCreated('User created.')
내가 api/v1/users/create
에 POST를 한 경우, 그것은, CreateUserResource
에 의해 처리되지 않습니다 UsersResource
에 대한 세부 정보보기 및 그 이후에 나는 404를 얻습니다. 012ast47.gif tastypie가 리소스에 대한 URL을 검색하는 순서를 변경할 수 있습니까?
리소스가 내 urls.py
파일에 등록 된 순서는 차이가없는 것 같습니다. 아니면 내가 구현하고 싶은 것에 더 적합 할 수있는 대안이 있습니까?