Просто для тех, у кого есть такая же проблема: я обнаружил, что для меня лучше всего подходит промежуточное программное обеспечение, которое отображает общую страницу ошибок 403:
from django.http import HttpResponseForbidden
from django.conf import settings
from django.template import RequestContext
from django.shortcuts import render_to_response
class PermissionErrorMiddleware(object):
def process_response(self, request, response):
if isinstance(response, HttpResponseForbidden):
return render_to_response('403.html', context_instance=RequestContext(request))
return response
Он сообщает пользователю, что наиболее вероятной причиной появления страницы с ошибкой является то, что cookie-файлы отключены (среди прочего), потому что в противном случае мое приложение на самом деле не выдает 403 ошибки. Я всегда предпочитал подход «безопасность через неизвестность» и выбрасывал 404 ошибки, когда пользователь не должен обращаться к конкретной странице.