0

DjangoSocialAuthを使用しているときにこの問題が発生します。私はこのテンプレートを持っています。

{% block content %}
<div id="content-main">
    <ul>
        {% for name in social_auth.backends %}
        <li>
            <a rel="nofollow" href="{% url "socialauth_begin" name %}">{{ name|title }}</a>
        </li>
        {% endfor %}
    </ul>
</div>
{% endblock %}

標準のurlpattern(ログインページ)を使用すると正しくレンダリングされます

url(r'^accounts/login/$', 'django.contrib.auth.views.login'),

しかし、カスタムビューを使用する場合、で定義されているコンテキストを渡すにはどうすればよいTEMPLATE_CONTEXT_PROCESSORSですか?

settings.pyこれは私の見解であり、ファイルのエントリです

def login(request):
    t = loader.get_template('registration/login.html')
    c = Context( {} )
    return HttpResponse(t.render(c))

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.contrib.auth.context_processors.auth',
    'social_auth.context_processors.social_auth_by_name_backends',
    'social_auth.context_processors.social_auth_backends',
    'social_auth.context_processors.social_auth_login_redirect',
)

私の見解では、が空であるということは理にかなっていcontextます。空のオブジェクトを渡します。正しいものを渡すにはどうすればよいcontextですか。

4

1 に答える 1

2

RequestContextを使用してテンプレートをレンダリングし、応答を返す必要があります。これは通常、次のように行われます。

def someview(request):
    context = { }
    return render_to_response('some_template.html', context,
                context_instance = RequestContext(request))

サブクラス化RequestContextでより多くのドキュメント。

于 2013-02-05T11:26:26.410 に答える