2016-10-05 19 views
0

Djangoに新しくなりました。 DjangoのWebサイトでPollsのチュートリアルに続いて2番目のプロジェクトを行っています。これまでの努力は簡単でしたが、順調でした。今回は管理者ログインにアクセスする際に問題が発生しました。Django管理者ログインが返されます禁止403 CSRFの確認に失敗しました。リクエストが中止されました

私はhttp://127.0.0.1:8000/admin/login/?next=/admin/にログインしようとすると、私は次のエラーを取得する、スーパーユーザを作成し、それらの資格情報を使用しています

Forbidden (403) 
CSRF verification failed. Request aborted. 
Reason given for failure: 
    CSRF cookie not set. 

thisthisを見てみると、ほとんどの回答のいずれかの詳細クリアブラウザのクッキーは(ということでした)、あなたのミドルウェアに'django.middleware.csrf.CsrfViewMiddleware'を含めるか(私が行う)、または免除または回避策を作成する。

1)私の質問は、管理ポータルが今のところ動作していないように見える理由ですが、私の以前のプロジェクトでは同じ手順を踏んでいますか?

2)管理パネルのプロパティは、プロジェクトの開始によって継承されるべきではありませんか?

3)the documentationにCSRFミドルウェアがデフォルトで有効になっていると表示されている場合、adminのCSRFはどのように設定しますか?

ありがとうございました。

settings.py

""" 
Django settings for aptly project. 

Generated by 'django-admin startproject' using Django 1.9.7. 

For more information on this file, see 
https://docs.djangoproject.com/en/1.9/topics/settings/ 

For the full list of settings and their values, see 
https://docs.djangoproject.com/en/1.9/ref/settings/ 
""" 

import os 
import dj_database_url 

from .secret_settings import * 

# Build paths inside the project like this: os.path.join(BASE_DIR, ...) 
BASE_DIR = os.path.dirname(os.path.dirname(__file__)) 

PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__)) 
PROJECT_DIR = os.path.join(PROJECT_ROOT,'../search') 


# Quick-start development settings - unsuitable for production 
# See https://docs.djangoproject.com/en/1.9/howto/deployment/checklist/ 

# SECURITY WARNING: don't run with debug turned on in production! 
DEBUG = True 

ALLOWED_HOSTS = [] 



# Application definition 

INSTALLED_APPS = [ 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'search', 
] 

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

ROOT_URLCONF = 'aptly.urls' 

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [], 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
      ], 
     }, 
    }, 
] 

WSGI_APPLICATION = 'aptly.wsgi.application' 


# Database 
# https://docs.djangoproject.com/en/1.9/ref/settings/#databases 

DATABASES = { 
    'default': { 
     "ENGINE": "django.db.backends.postgresql_psycopg2", 
     "NAME": "db_name", 
     "USER": "me", 
     "PASSWORD": "", 
     "HOST": "localhost", 
     "PORT": "", 
    } 
} 

# Password validation 
# https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators 

AUTH_PASSWORD_VALIDATORS = [ 
    { 
     'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 
    }, 
] 


# Internationalization 
# https://docs.djangoproject.com/en/1.9/topics/i18n/ 

LANGUAGE_CODE = 'en-us' 

TIME_ZONE = 'UTC' 

USE_I18N = True 

USE_L10N = True 

USE_TZ = True 


# Static files (CSS, JavaScript, Images) 
# https://docs.djangoproject.com/en/1.9/howto/static-files/ 

STATIC_URL = '/static/' 
STATIC_ROOT = os.path.join(BASE_DIR, 'static_root') 

# Extra places for collectstatic to find static files. 
STATICFILES_DIRS = (
    os.path.join(PROJECT_DIR, 'static'), 
) 

# Simplified static file serving. 
# https://warehouse.python.org/project/whitenoise/ 

STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage' 

#DATABASES['default'] = dj_database_url.config() 

urls.py

from django.conf.urls import patterns, include, url 
from django.contrib import admin 
from . import views 

urlpatterns = [ 
    url(r'^$', views.index, name='index'), 
    url(r'^admin/', admin.site.urls), 
] 

ディレクトリ

project 
-aptly 
--settings.py 
--urls.py 
--wsgi.py 
-search 
--templates 
---index.html 
--models.py 
--urls.py 
--views.py 
manage.py 
+1

adminログインページに 'custom html templates'を使用していますか? – cutteeth

+0

@cutteethいいえここにあなたが見ることができるようにurls.pyを追加しました。私は私が取り組んでいる多くのhtmlテンプレートを持っていますが、それらのどれも管理ログインページのために混同されるべきではありません。 – Jebediah15

+0

テンプレートを呼び出す場所にビューを追加すると問題が発生する可能性があります –

答えて

0

あなたはを設定しています この行を削除して問題が解決するかどうか確認してください。 https csrf will work only as per the specifications of httpsを有効にしている場合。 httpsを有効にし、https以外のサーバーからWebサイトを提供する可能性があります。また、Cookieをクリアした後、またはプライベート/シークレットモードで別のブラウザで試しましたか?このエラーは、csrf cookie is not set correctlyが原因で発生することがあります。ブラウザコンソールからinspecting your request/response headersを試してください。

+0

settings.pyから 'SECURE_PROXY_SSL_HEADER =( 'HTTP_X_FORWARDED_PROTO'、 'https')'を完全に削除しましたが、エラーが残ります。 – Jebediah15

+0

あなたはsettings.py全体とあなたのテンプレートディレクトリの構造を投稿できますか?あなたは './manage.py runserver'を使ってサーバを実行していますか? – cutteeth

+0

は 'settings.py'全体にアップロードされました。はい、私は './manage.py runserver'を実行しています。 – Jebediah15

0

私はこれが答えである理由を知りませんが、私は入ってDjangoを現在のリリースに更新しました。何らかの理由でこれが問題を解決しました...

pip install --upgrade django==1.10.2 
0

同じ問題が私にも発生しました。

は、実は問題は私のDjangoのアプリもそれが活性化した仮想環境から依存関係を使用していなかったということでした。私は仮想環境に私のシステムとジャンゴ1.11.2Djangoの1.8をインストールしていた

したがって、問題はDjangoバージョンです。

は最後に、私は次のように

削除さ

1)/ virtualenvの改名、問題を修正し、作成した新しい MAC

virtualenvの

を活性化1

rm -rf venv && virtualenv venv 

2) インストールされたWindowsで0

.\venv\Scripts\activate 

3)依存関係PIP-requirements.txtファイルから(あなたがそうでなければ持っている場合は、個別の依存関係をインストールする必要があります)

pip install -r pip-requirements.txt 

4)その後、私は開発サーバー(python manage.py runserver)の起動を開始し、ログインしようとしました。それが動作します。

チェックpip freeze does not show all installed packagesもあります。

関連する問題