1

これは初心者の質問です。

テンプレートで次のコードを使用して、メイン ページにソーシャル ログイン リンクを表示しようとしています。

{% 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に配信する必要があると思います。

4

1 に答える 1

3

私自身のばかげた質問に答えて、

私のメインページの表示は次のとおりです。

def home(request):
    """Main listing."""
    return render_to_response("main/index.html", "")

今では:

def home(request):
    """Main listing."""
    return render_to_response("main/index.html", context_instance=RequestContext(request))
于 2013-01-29T06:56:46.197 に答える