0
'DELETE .../id/delete'를 요청하면 DRF가 404 응답을 찾을 수 없습니다.DELETE에서 DRF가 404를 찾지 못함
내 모델의 일부와 함께 성공적인 API를 가지고 있지만이 오류는 다른 부분에서 발생합니다.
차이점을 볼 수 없으며 디버깅 방법을 모르겠습니다.
url.py :
url(
regex=r'^thirdparties/(?P<pk>[0-9]+)/delete/',
view=ThirdPartyDestroyAPIView.as_view(),
name='thirdparties_delete'
),
view.py :
@python_2_unicode_compatible
class ThirdPartyDestroyAPIView(LoginRequiredMixin, PermissionRequiredMixin, CurrentUserThirdPartiesMixin, DestroyAPIView):
serializer_class = ThirdPartyReadSerializer
permission_required = 'cashflows.delete_thirdparty'
raise_exception = True
내 요청 :
DELETE /api/v1/thirdparties/5/delete/
내 대답 :
django_1 | 172.18.0.1 - - [18/Nov/2016 16:02:11] "DELETE /api/v1/thirdparties/5/delete/ HTTP/1.1" 404 -
,536,
편집 1
이것은 get_queryset() 메소드에서 가져옵니다.
def get_queryset(self):
user = self.request.user
if user:
if 'category_id' in self.kwargs:
return ThirdParty.objects.filter(categories__in=self.kwargs['category_id'])
elif 'sheet_id' in self.kwargs:
third_parties = ThirdParty.objects.filter(categories__sheet__in=self.kwargs['sheet_id'])
third_parties = list(set(third_parties))
return third_parties
else:
third_parties = ThirdParty.objects.filter(categories__sheet__in=Sheet.objects.filter(user=user))
third_parties = list(set(third_parties))
return third_parties
else:
return None
내가 그것을 변경할 때 : : 내 방법은 믹스 인에
def get_queryset(self):
return ThirdParty.objects.all()
그것은 작동!
. 또한, 전체 관점입니까? 삭제할 특정'ThirdParty'를 얻으려면'get_object' 함수가 있어야합니다. 현재이보기에는 삭제할 내용이 없습니다. – jape
@jape URL의 'pk'인수가 일반보기 'DestroyAPIView'로 전달되도록 의도 된 것 같지 않습니까? – bixente57