当我在自定义中间件类的request.set_cookie()
中process_view
时,我继续获得此异常。以下是我的settings.py中的中间件类的顺序:
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'website.middleware.UserLastActiveMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
)
答案 0 :(得分:2)
您应该set_cookie()
来自response
对象。
例如:
def process_response(self, request, response): ... response.set_cookie('user_agreement', user_agreement, domain='.mysite.com') return response
答案 1 :(得分:2)
您可以查看以下问题:Django: WSGIRequest' object has no attribute 'user' on some pages?
当您不添加尾部斜杠时,通常会发生此问题,因为这会对包含尾部斜杠的网址进行重定向
答案 2 :(得分:2)
在您对请求的回复中设置Cookie时,首先使用set_cookie()
is a method of HttpResponse
,而不是HttpRequest
。
其次,您的中间件应该在AuthenticationMiddleware
之后,因为可能与用户有关。