2017-04-11 19 views
6

Bất cứ khi nào tôi chạy máy chủ cục bộ với dự án django của mình, tôi nhận được cảnh báo và thông báo lỗi nói rằng trong Django 1.7, các lớp trung gian toàn cầu đã được thay đổi - mặc dù tôi đang sử dụng 1.8. Blog của tôi, tại http://127.0.0.1:8000/, tải tốt, nhưng khi tôi cố gắng tải trang web quản trị, tôi nhận được AttributeError at /admin/ 'WSGIRequest' object has no attribute 'user', mà theo như tôi có thể nói là để làm với Middleware. Nhờ sự giúp đỡ của bạn trướcLỗi trung gian Django - Phần mềm thay đổi cho 1.7

EDIT: middleware của tôi: nhắn

MIDDLEWARE = [ 
    'django.middleware.security.SecurityMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
] 

Lỗi:

Warnings 
?: (1_7.W001) Middleware_Classes is not set. 
    Hint: Django 1.7 changed the global defaults for the middleware_classes. django.contrib.auth.middleware.AuthenticationMiddleware, django.contrib.sessions.middleware.SessionMiddleware, and django.contrib.messages.middleware.MessageMiddleware, were removed from the defaults. If your project needs this middleware then you should configure this middleware. 
+0

Chúng tôi không thể trợ giúp vì bạn chưa bao gồm cài đặt phần mềm trung gian hoặc thông báo lỗi đầy đủ. – Alasdair

Trả lời

5

Thiết lập MIDDLEWARE đã được giới thiệu trong Django 1.10. Nếu bạn đang sử dụng Django 1.9 hoặc cũ hơn, nó sẽ không có hiệu lực và bạn nên sử dụng cài đặt MIDDLEWARE_CLASSES để thay thế.

Đảm bảo bạn đang sử dụng đúng phiên bản của tài liệu (ví dụ: Django 1.8, Django 1.11), để bạn làm theo hướng dẫn chính xác.

+1

Không chắc chắn những gì đã xảy ra - Tôi đã tạo nó bằng cách sử dụng 1.8 và tôi không nhớ đã thay đổi nó! –

3

Tôi đã tạo dự án của mình bằng cách sử dụng django 1.11 nhưng khi tôi chuyển tệp tới máy chủ web, tôi gặp lỗi với fcgi khiến tôi phải hạ cấp xuống 1.8. Do đó, lỗi xuất hiện do quản trị viên hiện đang mong đợi MIDDLEWARE_CLASSES thay vì MIDDLEWARE. Thay đổi đã giải quyết được lỗi.

Các vấn đề liên quan