При использовании сессий 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, я хотел знать, какие грубые ошибки я случайно совершил в отношении использования сессий.
Большое спасибо за ваш опыт и помощь:)
EDIT:
Так что просто для проверки: если у пользователя отключены файлы cookie, это не создает новую запись сеанса в базе данных для каждой страницы, которую он просматривает? Верно?