10

私はDjangoを使い始めたばかりで、可能な限り組み込み機能を使用しようとしています。そのため、ユーザーログインには、組み込みのログインビューを使用して、サイトのベースURLに割り当てています。

urlpatterns=patterns('django.contrib.auth.views',
    url(r'^/$','login',{'template':'mytemplate.html'}),

mytemplate.htmlは次のようになります。

<!DOCTYPE html>
<html>
<body>
    {%if form.errors %}
    <p> Invalid username/password combination, please try again </p>
    {% endif %}

    <h1>Welcome to My Site!</h1>
    <form action="{% url django.contrib.auth.views.login %}" method="post">
    {% csrf_token %}
        {{form.username.label_tag}}{{form.username}}
        {{form.password.label_tag}}{{form.password}}
        <input type="submit" id="submit" name="submit" value="Sign in" />
        <input type="hidden" name="next" value="{{ next }}" />        
    </form>
    <a href="password_reset/" id="forgot"> forgot username/password</a><br />
    <a href="register" id="new">new user</a>
</body>
</html>

私の問題は、テンプレートが想定されているコンテキストのいずれも渡されていないように見えることです。レンダリングされたHTMLでは、すべての変数タグが単純に消えます(つまり、適切な値に置き換えられるのではなく、何も置き換えられません)。

重要なステップをスキップしていると思いますが、それが何であるかわかりません。何か案は?

4

2 に答える 2

13

「テンプレート」から「テンプレート名」に変更する必要があります

urlpatterns=patterns('django.contrib.auth.views',
    url(r'^/$','login',{'template_name':'mytemplate.html'}),

https://docs.djangoproject.com/en/1.4/topics/auth/#django.contrib.auth.views.login

于 2012-08-09T09:53:02.863 に答える
3

URL 構成からテンプレート名を削除してみてください。その後、Django は標準のテンプレートにフォールバックします。これにより、何らかの形でテンプレートを台無しにしたかどうか、または他の何かが間違っているかどうかを確認できます。

私の次の推測は、TEMPLATE_CONTEXT_PROCESSORS の設定を確認することです。それらのいずれかを定義している場合は、必ず含めてください

"django.contrib.auth.context_processors.auth",

何も定義していない場合、django は標準のタプルを使用しますが、これには既に認証プロセッサが含まれています。

于 2012-06-01T06:28:10.767 に答える