2017-11-28 3 views
0

GET 매개 변수 'pk'를 django rest-framework에 전송하고 싶습니다.rest-framework "get() missing 1 필수 위치 인수"

브라우저

enter image description here

하지만 내 view.py에서 나는 '의 PK'매개 변수를받을 내 GET 방법을 설정했다. I 모델은 pycharm에서 사용하기 '객체'방법을 반대하는 경우,

enter image description here

다른 하나 개의 질문이있다 :

views.py

enter image description here

이 urls.py 코드입니다 , 다음과 같은 예외를 throw했습니다.

enter image description here

하지만 내 친구는이 예외가 발생하지 않았습니다. pycharm 2017.2 파이썬 버전 1.11.7

모두 감사 3.6 장고 버전 : 그는 pycharm 2017.4 (맥 OS)

cateloydata = category.objects.all() 

내 pycharm 버전을 사용합니다.

죄송합니다. 이미지를 게시하려면 10 개 이상의 평판이 필요합니다. 그래서 내 질문 작성은 매우 나쁘다. !

는 感谢

+0

코드를 게시 할 때 이미지를 사용하지 마십시오. – Micho

+0

귀하의 조언을 주셔서 감사합니다, 나는 잠시 전에 StackOverflow를 사용합니다. 나는 그것에주의를 기울일 것입니다 – notyeat

+0

urls.py => urls.py => url (r '^ question/(? P \ w +)/views', views.QueryQuestion.as_view)), –

답변

0

당신이 당신의 URL에 PARAMS를 추가, 당신은 다음과 같이 당신의 방법 정의에 추가 PARAM를 추가 할 수 있습니다 위의 URL에

# urls.py 
url(r'^questions/(?P<pk>[\w:|-]+)/$', TheView.as_view(), name='view') 

, 당신은을 전달하는

# views.py 
class TheView(APIView): 
    def get(self, request, pk): 
    ... 

을하지만 당신의 경우에, 당신은 검색어 매개 변수로 데이터를 전달하려는 : 홈페이지의 PARAM (PK) 그래서 당신은 방법을받을 수 있습니다.

# urls.py 
url(r'^questions/$', TheView.as_view(), name='view') 

그래서 당신은 사용 방법 선언을받을 필요가 없습니다 : 대신

def get(self, request): pk = request.GET.get('pk')

합니다.

+0

그것은 좋은 해결책이지만 공식 문서 예제와 비슷한 코드이므로 혼란 스럽습니다 (공식 문서 예제를 참조하십시오 : http : //www.django-rest-framework.org/tutorial/3-class- based-views /) – notyeat

+0

차이점을 명확히하기 위해 답을 편집합니다. – arcegk

관련 문제