これは初心者の質問です。
テンプレートで次のコードを使用して、メイン ページにソーシャル ログイン リンクを表示しようとしています。
{% load i18n %}
{% load static %}
{% load socialaccount %}
{% load account %}
{% load url from future %}
{% get_static_prefix as STATIC_PREFIX %}
...
<a href="{% provider_login_url 'facebook' method='js_sdk' %}"><img src='{{ STATIC_PREFIX }}img/facebookText.png' alt="facebook connect"></a>
<a href="{% provider_login_url 'google' method='js_sdk' %}"><img src='{{ STATIC_PREFIX }}img/googleText.png' alt="google connect"></a>
<a href="{% url 'account_login' %}"><img src='{{ STATIC_PREFIX }}img/idText.png' alt="Regular login"></a>
サイト ID が正しく指定されていることを確認しました ([こちら][1] で説明されているとおり)。
この [チュートリアル][2] とこの [ガイド][3] で提案されているように、settings.py で設定を指定しました。
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'django_tables2_reports',
'subscription',
'django_tables2',
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.facebook',
'allauth.socialaccount.providers.google',
#'allauth.socialaccount.providers.linkedin',
#'allauth.socialaccount.providers.openid',
# 'allauth.socialaccount.providers.twitter',
'django.contrib.admin',
)
TEMPLATE_CONTEXT_PROCESSORS = (
"django.core.context_processors.request",
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.static',
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"allauth.account.context_processors.account",
"allauth.socialaccount.context_processors.socialaccount",
)
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",
)
また、ログイン後にユーザーが私のホームページに誘導されるように指定しました。
LOGIN_REDIRECT_URL="/"
しかし、ホームページ (はるかに上のテンプレートで提供されるページ) にアクセスすると、このエラーが発生します: テンプレートのレンダリング中にエラーが発生しました
In template C:\Users\Andy\Desktop\business\app\static\templates\base.html, error at line 40
request
30 </style>
31 </head>
32 <body class="{% block body_class %}{% endblock %}">
33 <div align="right">
34 {% if user.is_authenticated %}
35 {% user_display user as user_display %}
36 {% blocktrans %}{{ user_display }} logged in{% endblocktrans %}
37 <a href="{% url 'account_logout' %}">Sign Out</a>
38 {% else %}
39 <img src='{{ STATIC_PREFIX }}img/loginText.png' alt="login">
40 <a href="{% provider_login_url 'facebook' method='js_sdk' %}"><img src='{{ STATIC_PREFIX }}img/facebookText.png' alt="facebook connect"></a>
41 <a href="{% provider_login_url 'google' method='js_sdk' %}"><img src='{{ STATIC_PREFIX }}img/googleText.png' alt="google connect"></a>
42 <a href="{% url 'account_login' %}"><img src='{{ STATIC_PREFIX }}img/idText.png' alt="Regular login"></a>
43 {% endif %}
44 </div>
45
46
47
48
49 {% block body %}
50 {% block content %}{% endblock %}
助けていただければ幸いです:)私のビューは、この provider_login_url に関連する追加情報を私のhtmlに配信する必要があると思います。