Djangoセッションを使用する場合、同じビューでセッションデータが以前に設定されているかどうかを確認し、設定されていない場合は初期セッションデータを設定することをお勧めしますか?
ユーザーがCookieを無効にしている場合、これは私またはユーザーにとって大きな問題を引き起こしますか?
(テストCookieの存在は私を少し混乱させました。しかし、これらを使用した場合、ユーザーが最初に表示したページに関するデータを記録することはできません。)
以下は私のviews.pyファイルからの抜粋です。ビューでは、ユーザーはゲームが掲載されているページにアクセスしています。
以前にセッションデータを保存していた場合、および初めてゲームを表示した場合、ビューはセッションデータを変更して、ゲームにアクセスしたという事実を記録します。セッションデータがない場合は、ここで初期化されます。
def game(request, game_name):
game = get_object_or_404(Game, web_name=game_name)
c = { 'game': game }
# game_votes is used to store if user has voted on game yet.
# Also a key in dictionary indicates user has previously visited that game.
game_votes = request.session.get('game_votes', False):
if game_votes:
if not game_votes.has_key(game_name):
game_votes[game_name] = False
request.session['game_votes'] = game_votes
request.session.modified = True
else:
pass
else: # I.e. no session was declared previously.
request.session['game_votes'] = { game_name: False }
request.session['sorting_choice'] = 'PO'
request.session['ip_address'] = request.META['HTTP_X_FORWARDED_FOR']
return render_to_response('game.html', c)
Djangoを使用するのはこれが初めてなので、セッションの使用に関して不注意に犯した明白な間違いを知りたいと思いました。
あなたの専門知識と助けてくれてありがとう:)
編集:
確認するだけです。ユーザーがCookieを無効にしている場合、表示するすべてのページのデータベースに新しいセッションエントリが作成されませんか?右?