1

次のようなビューがあります。

def CineByCiudad(request):
    city = request.session["ciudad"]
    cines = Cine.objects.filter(ciudad=city)
    context = {'cines': cines}
    return render_to_response('cine-ciudad.html', context, context_instance=RequestContext(request))

現在、セッション変数「ciudad」を使用してクエリをフィルタリングしています。私のサイトのホームページで、ユーザーに「ciudad」を設定させ、設定したら別のページにリダイレクトすると、都市(「ciudad」)に基づいてコンテンツの表示を開始できます。

私のホームページは、セッションにアイテムがあるかどうかをチェックします:

def index(request):
    #Checks to see if the session has items, in particular if a city has been set
    if not request.session.items():
        return render_to_response('index.html', context_instance=RequestContext(request))
    else:
        return redirect(Cartelera)

ここで、何らかの理由でユーザーが Cookie を削除し、サイトでホームページとは異なる URL (www.site.com/cartelera など) にアクセスすると、セッション変数「ciudad」が設定されていないため、エラーが発生するとします。 .

設定されていない場合に、このセッション変数のデフォルト値を作成する方法はありますか? または、この問題に対処するための良い習慣は何ですか?

4

1 に答える 1

1

次のように、値が設定されていない場合は、セッションでdict.getメソッドを使用してデフォルトを取得します。

city = request.session.get('ciudad', 'default value')
于 2013-01-04T17:50:24.297 に答える