Tastypie API를 가지고 있습니다. POST 요청시 생성 된 리소스의 "id"를 얻고 싶었 기 때문에 전체 솔루션을 반환하는 "always_return_data"만있었습니다.Tastypie "always_return_data"옵션이 응답을 변경했습니다. 상태 코드
from tastypie.resources import ModelResource
from tastypie.authorization import Authorization
from tastypie.authentication import SessionAuthentication
from myproject.core.models import MyModel
class MyResource(ModelResource):
...
class Meta:
queryset = MyModel.objects.all()
resource_name = 'mymodel'
allowed_methods = ['get', 'put', 'post']
authentication = SessionAuthentication()
authorization = Authorization()
always_return_data = True # Added later
그리고 이것은 정상적으로 작동합니다. 그러나 처음에 나는 테스트를 작성하고 있었다했다 :
게시물에 대한: self.assertHttpCreated(self.api_client.post('self.detail_url', format='json', data=data))
그리고 PUT을 위해 : 이제 self.assertHttpAccepted(self.api_client.put(self.detail_url, format='json', data=new_data))
내가 POST 사촌, always_return_data = True
이전 테스트가 실패로 설정 한 후 대신 200 returnin한다 201 및 PUT은 [202/204] 대신 [202/204]를 리 튜닝합니다. assertHttpCreated
및 assertHttpAccepted
을 assertHttpOK
으로 바꾸는 것 이외의 해결책이 있습니까? 아니면 가능한 한 POST 요청시 새로 생성 된 자원의 "id"를 반환 할 수 있습니까? always_return_data = True
을 설정하십시오. 어떤 제안이라도 환영합니다. 고맙습니다.
답장을 보내 주셔서 감사합니다. 유용합니다. 나는 PUT 또는 POST에 200 OK가 적절하다는 것을 알고 있지만 가능한 경우 더 정확하게하려고 노력했습니다. –