HyperlinkeRelatedFields 등을 사용하는 하이퍼 링크 된 serializer에 대한 사용자 지정 권한 클래스를 구현하고 있습니다.Django Rest Framework POST 개체의 프레임 워크 사용 권한
는 검사가 매우 약이다 : 그 문제를 이동 것이지만 시리얼을 검증하는 동안이 검사를 수행하도록 좋을 것 같은
이def has_permission(self, request,view):
if request.method in permissions.SAFE_METHODS:
return True
if not request.user.is_authenticated():
return False
if request.user.is_staff:
return True
# POST: 'author' is a URL due to serializer being Hyperlinked
# meaning we have to translate URL to model (like the serializer)
# to perform the check
if url_to_user(request.DATA['author']) == request.user:
return True
코드에서 주석을 감안할 때, 그것은 보인다. 그것은 유효성 검사 클래스가 save()가 POST/PUT을 확인하기 위해 호출되기 전에 새 객체를 전달하는 메서드를 필요로하는 것과 비슷합니다. POST/PUT은 유효성 검사 관점에서 볼 때 HTTP/권한 관련 검사를 시리얼 라이저.
url_to_user는 직렬화에 고유하며 serializer의 유효성 검사기 부분은 새 모델의 온 전성/무결성 검사가 아닌 요청/http 특정이 될 것입니다.
내가 할 수있는 일은 흔한 일 인 것 같아서 어떤 경로를 택했는지 궁금하다. 그리고 "더 정확한"접근법이 있다면 나는 실종되었다.
미리 감사드립니다.