2012-08-22 5 views
6

일부 장고 URL 대응을 시도하고 있습니다. 장고 URL은? URL에

내가 내가 가지고 몇 URL을 원하는 http://mysite.com/base?sort=type1/, http://mysite.com/base?sort=type2/

나는 이러한 식을 일치 URL로 방법을 알아낼 수 없습니다 : 나는 매우 장고에 새로운 등록 예를 이전에 사용한 적이 있어요.

내가 내 "기본"에 urls.py를 위해 무엇을 가지고 응용 프로그램입니다 :

url(r'^$','base.views.main, name='main'), 

나는 물음표 내 URL을 맞게 넣어 무엇을 알아낼 수 없습니다.

나는 도움을

url(r'^?sort=popular/$', 'base.views.main_popular', name='main_popular'), 

감사 같은 것을하려고 해요!

답변

6

? "?"와 일치하지 않습니다. URL 안에는 대신 여기에서 찾아 볼 수있는 고유 한 의미가 있습니다.
Python Regular Expressions "?"의 정확한 문자를 찾으려면, 귀하의 URL 안에, 당신은 어떻게 든 그것을 도출해야합니다 (RegExs에서 의미가 있기 때문에) "\"(백 슬래시) 로 그걸 벗어나고 싶을 수도 있습니다. 그래서 당신은 \ ... 정렬을 쓸 것입니다. ...

편집 :
sort=popularGET 메서드 사전 인수를 사용하여 /main/ 템플릿을 렌더링 할 때 여기에 문제가있는 것 같아서 URL 패턴에 main?sort=popular이 나타나면이 태그를 구별하는 함수를 작성하기 만하면됩니다. GETPOST, GET 부분에 sth가 sort_by = request.GET.get('sort','') 인 경우 sort_by 변수의 값에 따라 정렬하면 sth와 같습니다.

def main_handler(request): 
    if request.method == "POST": 
      whatever ... 
    if request.method == "GET" : 
      sort_by = request.GET.get('sort','') 
      if sort_by: 
       sort by what sort points to 
       return "the sorted template" 
    return render_to_response(the page and it's args) 

그런가요? url 패턴 안에는 GET 인수가있는 페이지를 요청할 때 추가됩니다.

+0

나는 이것을 시도했다. 불행하게도 정말로 잘되지 않았다. 나는 확실히 모른다. – deakolt

+0

코드를 올리시겠습니까? 하지만 정말, 그 URL의 시작 부분에 물음표가있는 것은 이상한 것처럼 보입니다. (sort = popular) – SpiXel

+0

글쎄, 본질적으로 나는 정렬을 기반으로 정렬 될 수있는 콘텐츠가있는 하나의 웹 페이지를 가지고 있습니다. main? sort = 인기있는 정렬은 메인 페이지와 메인 페이지/인기 페이지/다른 종류의 페이지를 의미합니다. 나는 url을 사용하고 있었다. (r '^ \? sort = popular/$', 'base.views.main_popular', name = 'main_popular') – deakolt

7

정규식과 일치하지 않습니다. ? 뒤에 오는 요소는 URL의 일부가 아니며 사용자가보기에서 request.GET을 통해 액세스 할 수있는 쿼리 매개 변수입니다.

+0

Ahh 나는 웹 프로그래밍에있어 정말 고마워. 고맙다. – deakolt