2017-09-23 2 views
1

나는 Django optional url parameters 스레드를 읽었으며 하나의 선택적 매개 변수로 URL을 생성하는 단계를 수행했습니다. URL에서 Django 선택적 매개 변수를 읽을 수 없습니다.

글쎄, 내 URL은 다음과 같아야합니다

/client/ 
/client/?clientname=John 

그리고 나는 둘 다 페이지를 렌더링이 시점에서, 두 urlpatterns

url(r'^$', views.index, name='index'), 
url(r'^/(?P<clientname>\d+)/',views.index), 

음을 정의했습니다. 는하지만, 내보기 :

def index(request, clientname='noparameter'): 
    print("The searched name is: " + str(clientname)) 

검색된 이름은 항상

noparameter 내가 뭔가 잘못하고 있습니까? 당신이 겪고있는

답변

1

키워드 인수와 get 요청이 혼동스럽게 보입니다. 당신의 urls.py가 구성 키워드 인수를 사용하여보기이 좋아하는 것 :

url(r'^client/(?P<clientname>\w+)/',views.index), 

이 수 :

def index(request, **kwargs): 
    clientname = kwargs.get("clientname", "noparameter") 
    print("The searched name is: " + str(clientname)) 

당신의 urls.py는이에 대한 URL이 변경해야 다음과 같이 브라우저에서 호출 할 수 있습니다.

/client/John 
+0

맞아! thead를 읽은 후 https://stackoverflow.com/questions/3500859/django-request-get#3500932 나는 당신이 나를 쓰는 것이 더 분명하다. 감사! – MrMins

2

URL이

/client/John/ 

대신 심지어 다음 예와도

/client/?clientname=John 

당신의 정규식 자리입니다으로 실패 존을 사용하고, django dispatcher

의 주제에 대한 자세한 확인
/client/4/ 

대신 GET 매개 변수를 가져 오려면 v에서 할 수 있습니다. 다음을 사용하여 보시기 바랍니다.

request.GET.get('clientanme', None) 
관련 문제