12

request.META.get('HTTP_REFERER')テンプレート内で使用したいのですが。

私のテンプレートソース:

<!-- this is login.html -->
{% extends "base.html" %}
{% block title %}django bookmark- login{% endblock %}
{% block head %}login{% endblock %}
{% block content %}
    {% if form.errors %}
    <p>try again!</p>
    {% endif %}
    <form method="post" action=".">{% csrf_token %}
        <p><label for="id_username">username:</label>
        {{ form.username }}</p>
        <p><label for="id_password">password:</label>
        {{ form.password }}</p>
        <input type="hidden" name="next" value="/<!-- I WANT TO USE 'HTTP_REFERER' HERE -->" />
        <input type="submit" value="login" />
    </form>
{% endblock %}

どうすればいいですか?

urlpatterns = patterns('', (r'^login/$', 'django.contrib.auth.views.login'),
4

3 に答える 3

13

の必要はありませんgetrequest.METAはディクショナリであり、すべてのディクショナリと同様に、ドット表記を使用してテンプレートでフィールド ルックアップを実行できます。{{ request.META.HTTP_REFERER }}

于 2012-12-23T12:49:36.520 に答える
6

django.core.context_processors.request設定ファイルを in に追加すると、 request で明示的に渡すことなく in テンプレートTEMPLATE_CONTEXT_PROCESSORSを使用できるようになります。requestcontext

TEMPLATE_CONTEXT_PROCESSORS = (
    '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.request', # this one
)

あなたができるインテンプレート{{request.META.HTTP_REFERER}}

于 2012-12-23T11:12:11.743 に答える