Иногда я получаю эту ошибку в пользовательском промежуточном программном обеспечении в методе ответа процесса _. У меня есть следующий список промежуточных программ:
MIDDLEWARE_CLASSES = [
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.doc.XViewMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'application.middleware.LastCampaignSessionMiddleware'
]
Таким образом, промежуточное программное обеспечение сеанса размещается перед моим промежуточным программным обеспечением. У меня нет del request.session
выражений в исходном коде. Это процесс _метод ответа:
def process_response(self, request, response):
if 'last_campaign_id' in request.session and request.session['last_campaign_id']:
if request.COOKIES['last_campaign_id'] != request.session['last_campaign_id']:
response.set_cookie('last_campaign_id', request.session['last_campaign_id'])
return response
Не знаю, почему это вообще могло произойти.
РЕДАКТИРОВАТЬ 03 -08 -2012 12 -30
Похоже, что браузер запрашивает фавиконку:
[03/Aug/2012 10:26:42] "GET /favicon.ico/ HTTP/1.1" 404 6701
В django нет поведения по умолчанию для разрешения этого URL-адреса? Потому что я явно не указал представление, которое должно обрабатывать этот запрос. И я не использую favicon в исходном коде страницы. Так что я предполагаю, что браузер запрашивает /favicon.ico. Я предполагаю, что в случае ошибки 404 HttpRequest не будет правильно построен, поэтому неудивительно, что у меня нет сеанса в объекте запроса. Но это только мои предположения.
Также, если это необходимо, я использую сервер django dev при получении этой ошибки.
РЕДАКТИРОВАТЬ 13 -00
Я исправил эту проблему с favicon, но все равно получаю ошибку. Почему сессия может не существовать в запросе?