2009-06-05 4 views
1

슬래시를 스크립트로 전달한 후 WHOLE url을 원합니다. 내가하는 일 :urls.py에서 쿼리 매개 변수를 일치 시키십시오.

url(r'^(?P<id>.*)$', alias.get, name="alias"), 

그런 다음 경로 구성 요소 만 가져오고 내 매개 변수는 내 함수로 전달하지 않습니다. 나는 다음을해야만한다 :

 
def urlencode(dict) : 
    if len(dict) == 0 : return "" 
    params = {} 
    for k, v in dict.items() : 
     params[k] = v.encode('utf-8') 

    return "?" + urllib.urlencode(params) 

def get(id) : 
    id += urlencode(request.GET) 

나는 내 의견을 많이 지키기 위해이 작업을하고 있으며, 계속 잊어 버리고 버그를 만들고있다. 내 urls.py에게 쿼리 문자열을 포함한 모든 것을 일치 시키라고 말할 수있는 방법이 있습니까?

답변

1

아니요, 그렇게 할 방법이 없습니다. GET 매개 변수는 urls.py로 전달되지 않습니다.

왜 이렇게해야하는지 궁금합니다. GET querystring에 많은 의견이 의존하는 이유는 무엇입니까? 장고 방법을 사용하지 마십시오. 매개 변수를 쿼리 문자열이 아닌 URL 자체의 일부로 만드는 것입니다.

+0

내 URL은 다음과 같습니다 : http : //example.com/alias/http : // stackoverflow.com/users/90025/paul-tarjan'. 즉, 다른 누군가가 내 URL 끝에 자신의 URL에 올립니다. 자주 게시 된 URL에는 "별칭"의 일부로 캡처하려는 쿼리 패턴이 있습니다. –

3

보기에서 request.get_full_path()과 함께 쿼리 문자열을 포함하는 URL을 가져올 수 있습니다.

http://servername.com 부분을 포함 시키려면 request.build_absolute_uri()도 있습니다.

관련 문제