質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

3046閲覧

Djangon adminアクセス時などにImportエラーが発生する

Madai

総合スコア29

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/08/20 14:17

編集2020/08/27 13:10

Python Djangoで作成したシステムにおいて、http://localhost:8000/adminやallauthで実装したlogin、signupなどにアクセスする際、Importエラーが発生します。

・直接の原因はdjango\utils\module_loading.pyのimport_string関数でimportエラーが発生しています。
・adminアクセス時のスタックトレースを確認すると自身が作成したファイルからは発生していないです。
・adminアクセス時のサーバー応答から下記の表示が確認できました。
File "C:\Users\husah\paperwork_system\lib\site-packages\django\utils\module_loading.py", line 13, in import_string
module_path, class_name = dotted_path.rsplit('.', 1)
ValueError: not enough values to unpack (expected 2, got 1) 

エラー想定
・settings.pyなどで必要な設定がなされていない?
・設定するべき項目に引数が足りていない?

参考書を片手に実装を行ってきましたが、参考書に記載されている内容との違いがわからなく、難航しています。
Djangoの仕様から問題が起因している内容のため、原因究明が難しいです。
問題解決へお力添え頂けますよう、どうぞよろしくお願いします。

【エラーメッセージ】 ImportError at /admin/login/ a doesn't look like a module path Request Method: GET Request URL: http://localhost:8000/admin/login/?next=/admin/ Django Version: 3.1 Exception Type: ImportError Exception Value: a doesn't look like a module path Exception Location: C:\Users\husah\paperwork_system\lib\site-packages\django\utils\module_loading.py, line 15, in import_string Python Executable: C:\Users\husah\paperwork_system\Scripts\python.exe Python Version: 3.8.2 Python Path: ['C:\Users\husah\Dropbox\見積システム\paperwork_system', 'C:\Users\husah\AppData\Local\Programs\Python\Python38\python38.zip', 'C:\Users\husah\AppData\Local\Programs\Python\Python38\DLLs', 'C:\Users\husah\AppData\Local\Programs\Python\Python38\lib', 'C:\Users\husah\AppData\Local\Programs\Python\Python38', 'C:\Users\husah\paperwork_system', 'C:\Users\husah\paperwork_system\lib\site-packages'] Server time: Thu, 20 Aug 2020 19:24:16 +0900 Traceback Switch to copy-and-paste view C:\Users\husah\paperwork_system\lib\site-packages\django\utils\module_loading.py, line 13, in import_string module_path, class_name = dotted_path.rsplit('.', 1) … ▶ Local vars The above exception (not enough values to unpack (expected 2, got 1)) was the direct cause of the following exception: C:\Users\husah\paperwork_system\lib\site-packages\django\core\handlers\exception.py, line 47, in inner response = get_response(request) … ▶ Local vars C:\Users\husah\paperwork_system\lib\site-packages\django\core\handlers\base.py, line 179, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) … ▶ Local vars C:\Users\husah\paperwork_system\lib\site-packages\django\views\decorators\cache.py, line 44, in _wrapped_view_func response = view_func(request, *args, **kwargs) … ▶ Local vars C:\Users\husah\paperwork_system\lib\site-packages\django\contrib\admin\sites.py, line 394, in login **self.each_context(request), … ▶ Local vars C:\Users\husah\paperwork_system\lib\site-packages\django\contrib\admin\sites.py, line 312, in each_context 'available_apps': self.get_app_list(request), … ▶ Local vars C:\Users\husah\paperwork_system\lib\site-packages\django\contrib\admin\sites.py, line 485, in get_app_list app_dict = self._build_app_dict(request) … ▶ Local vars C:\Users\husah\paperwork_system\lib\site-packages\django\contrib\admin\sites.py, line 430, in _build_app_dict has_module_perms = model_admin.has_module_permission(request) … ▶ Local vars C:\Users\husah\paperwork_system\lib\site-packages\django\contrib\admin\options.py, line 546, in has_module_permission return request.user.has_module_perms(self.opts.app_label) … ▶ Local vars C:\Users\husah\paperwork_system\lib\site-packages\django\contrib\auth\models.py, line 452, in has_module_perms return _user_has_module_perms(self, module) … ▶ Local vars C:\Users\husah\paperwork_system\lib\site-packages\django\contrib\auth\models.py, line 215, in _user_has_module_perms for backend in auth.get_backends(): … ▶ Local vars C:\Users\husah\paperwork_system\lib\site-packages\django\contrib\auth\__init__.py, line 37, in get_backends return _get_backends(return_tuples=False) … C:\Users\husah\paperwork_system\lib\site-packages\django\contrib\auth\__init__.py, line 26, in _get_backends backend = load_backend(backend_path) … ▶ Local vars C:\Users\husah\paperwork_system\lib\site-packages\django\contrib\auth\__init__.py, line 20, in load_backend return import_string(path)() … ▶ Local vars C:\Users\husah\paperwork_system\lib\site-packages\django\utils\module_loading.py, line 15, in import_string raise ImportError("%s doesn't look like a module path" % dotted_path) from err … ▶ Local vars
【settings.py】 import os # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = '@@@@@@@@@@@' # 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', 'paperwork_system', 'top', 'client', 'accounts.apps.AccountsConfig', 'django.contrib.sites', 'allauth', 'allauth.account', 'allauth.socialaccount',#allauth\templates\account\login.html(デフォルトのlogin)を利用する際に必要 ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ROOT_URLCONF = 'paperwork_system.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 = 'paperwork_system.wsgi.application' # Database # https://docs.djangoproject.com/en/3.0/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'paperwork_system', 'USER': os.environ.get('DB_USER'), 'PASSWORD': os.environ.get('DB_PASSWORD'), 'HOST': '', 'PORT': '' } } # Password validation # https://docs.djangoproject.com/en/3.0/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/3.0/topics/i18n/ LANGUAGE_CODE = 'ja' TIME_ZONE = 'Asia/Tokyo' USE_I18N = True USE_L10N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/3.0/howto/static-files/ STATIC_URL = '/static/' #ロギング設定 LOGGING = { 'version': 1, 'disable_existing_loggers': False, #ロガーの設定 'loggers':{ #Djangoが利用するロガー 'django':{ 'handlers':['console'], 'level': 'INFO', }, #topアプリケーションが利用するロガー 'top': { 'handlers':['console'], 'level': 'DEBUG', }, }, #ハンドラの設定 'handlers':{ 'console':{ 'level':'DEBUG', 'class': 'logging.StreamHandler', 'formatter': 'dev' }, }, #フォーマッターの設定 'formatters':{ 'dev':{ 'format': '\t'.join([ '%(asctime)s', '[%(levelname)s]', '%(pathname)s(Line:%(lineno)d)', '%(message)s' ]) }, } } STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), ) AUTH_USER_MODEL = 'accounts.CustomUser' #django-allauthで利用するdjango.contrib.sitesを使うためのサイト識別用ID SITE_ID = 1 AUTHENTICATION_BACKENDS = ( 'allauth.account.auth_backends.AuthenticationBackend' 'django.contrib.auth.backends.ModelBackend' ) ACCOUNT_AUTHENTICATION_METHOD = 'username' ACCOUNT_USERNAME_REQUIRED = True LOGIN_REDIRECT_URL = 'top' ACCOUNT_LOGOUT_REDIRECT_URL = 'accounts/login' ACCOUNT_LOGOUT_ON_GET = True MEDIA_ROOT = os.path.join(BASE_DIR,'media')#238 https://codor.co.jp/django/about-basedir MEDIA_URL = '/media/'

【ディレクトリ階層】
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

自分で実行していないので確証は持てませんが、

AUTHENTICATION_BACKENDS = ( 'allauth.account.auth_backends.AuthenticationBackend' 'django.contrib.auth.backends.ModelBackend' )

ここに","を追加したらどうでしょうか?

AUTHENTICATION_BACKENDS = ( 'allauth.account.auth_backends.AuthenticationBackend', 'django.contrib.auth.backends.ModelBackend' )

投稿2020/08/24 02:01

llr114

総合スコア203

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Madai

2020/08/24 07:11

チェックが甘かったです。 おっしゃるとおりの構文ミスでした。 おかげで解決が敵いました どうもありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問