web-dev-qa-db-ja.com

'allauth.account.context_processors'という名前のモジュールはありません

Django-Allauthを使用したいので、次のようにインストールしました。ラップトップのローカルホストで完全に機能します。しかし、サーバーにプルすると、次のエラーが発生します。

No module named 'allauth.account.context_processors'

私は何をすべきか?

# Django AllAuth
TEMPLATES = [
    {
        'BACKEND': 'Django.template.backends.Django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                # Already defined Django-related contexts here

                # `allauth` needs this from Django
                'Django.contrib.auth.context_processors.auth',
                'Django.core.context_processors.request',

                # `allauth` specific context processors
                'allauth.account.context_processors.account',
                'allauth.socialaccount.context_processors.socialaccount',
                "Django.contrib.auth.context_processors.auth",
                "Django.core.context_processors.debug",
                "Django.core.context_processors.i18n",
                "Django.core.context_processors.media",
                "Django.core.context_processors.static",
                "Django.core.context_processors.tz",
                "Django.core.context_processors.request",
                "moolak.context_processors.image",
            ],
        },
    },
]


AUTHENTICATION_BACKENDS = (
    # Needed to login by username in Django admin, regardless of `allauth`
    'Django.contrib.auth.backends.ModelBackend',

    # `allauth` specific authentication methods, such as login by e-mail
    'allauth.account.auth_backends.AuthenticationBackend',
)

SOCIALACCOUNT_QUERY_EMAIL = True

EMAIL_BACKEND = 'Django.core.mail.backends.console.EmailBackend'

SOCIALACCOUNT_PROVIDERS = \
    {'google':
        {'SCOPE': ['profile', 'email'],
         'AUTH_PARAMS': {'access_type': 'online'}}}


SOCIALACCOUNT_PROVIDERS = \
    {'facebook': {'SCOPE': ['email', 'public_profile', 'user_friends'], 'AUTH_PARAMS': {'auth_type': 'reauthenticate'}, 'METHOD': 'js_sdk', 'VERSION': 'v2.3'}}


# newsletter

NEWSLETTER_DEFAULT_HEADER_SENDER = 'NewsLetter <[email protected]>'

私はDjango-Alluthを使用したことがないので、初心者です。できるだけ簡単に手伝ってください。

10
altruistic

これは、開発マシンとサーバーに異なるバージョンのAllauthがあることを意味します。あなたは間違いなく両側で同じバージョンを使用する必要があります。

サーバーで発生している問題の理由として、Django-allauthのバージョン0.22では、 コンテキストプロセッサがテンプレートタグに置き換えられています

次のことを確認する必要があります。

  1. 少なくともAllauth0.22を実行しています。これは、現時点での最新バージョンです(pip install Django-allauth==0.22
  2. Allauth固有のコンテキストプロセッサはDjangoプロジェクト設定にリストされていません。したがって、次の2行を削除する必要があります。
# `allauth` specific context processors
'allauth.account.context_processors.account',
'allauth.socialaccount.context_processors.socialaccount',
44
julen

このエラーは、モジュールが見つからなかったことを意味します。

おそらく、サーバーにallauthというサードパーティのモジュールをインストールする必要があります(または、Herokuのように自動デプロイを使用している場合は、requirements.txtに追加します)。

pip install Django-allauth

ローカルでpip freezeを実行して、インストールされているモジュールを確認できます。

Django-allauthの特定のバージョンをインストールするには、以下を使用します。

pip install Django-allauth==0.22.0
4
André Laszlo

Allauth0.22.0に問題がありました。allauth0.20.0をインストールしてください

pip install Django-allauth==0.20.0
1
altruistic