2012-05-19 3 views
0

jQuery를 통해 목록이나 격자보기로 볼 수있는 페이지가 있지만 어떤보기를 표시 할 것인지 묻는 URL이 필요합니다. 특히 - 사용자가 페이지를보고 싶은 내용을 다시 쓸 필요가 없도록 페이지 매기기를 할 때 - /test/?grid_view 또는 /test/?list_view과 같은 것입니다.Django보기에서/test /? grid-view 또는/test /? list-view를 얻는 방법

나는 request.GET.get을 사용하려고 시도했지만 작동하지 않는 것 같습니다.

def test (request): 
    grid_view = request.GET.get('grid_view') 
    list_view = request.GET.get('list_view') 
    if grid_view: 
     return render_to_response('grid_view.html', {}, context_instance=RequestContext(request)) 
    elif list_view: 
     return render_to_response('list_view.html', {}, context_instance=RequestContext(request)) 
    else: 
     return render_to_response('default_view.html', {}, context_instance=RequestContext(request)) 

그런 다음 내 주요 템플릿에 내가 <a href="/?list_view/">list view</a>에 다른보기를 가리키는 것 등 그렇게 어떤 제안이 너무 감사합니다 할 수있는 더 좋은 방법은 아마도 있습니다 : 여기에 지금까지 가지고있는 것입니다.

답변

2

빈 문자열은 False로 평가되며, 이것이 GET 요청 쿼리 문자열 매개 변수에 포함됩니다.

if 'grid_view' in request.GET or 'grid_view/' in request.GET: 
    pass 
elif 'list_view' in request.GET or 'list_view/' in request.GET: 
    pass 

또는 :

당신은 당신의 코드를 수정할 수

if request.GET.has_key('grid_view') or request.GET.has_key('grid_view/'): 
# ... 
0

GET 매개 변수가 아닙니다. request.META['QUERY_STRING']을 사용하여 쿼리 문자열을 가져옵니다.

관련 문제