0

jQueryを介してリストまたはグリッドビューで表示できるページがありますが、URLにそれがどのビューであるかを表示したいのですが、特にユーザーがページをめくって、表示したいものを再クリックする必要がない場合はそうです。このようなもの:/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>などを指定します。おそらくそれを行うためのより良い方法があるので、提案も歓迎されます。

4

2 に答える 2

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/'):
# ...
于 2012-05-19T09:20:59.980 に答える
0

これは GET パラメータではありません。request.META['QUERY_STRING']クエリ文字列を取得するために使用します。

于 2012-05-19T05:03:53.730 に答える