web-dev-qa-db-ja.com

Djangoフォームを使用してページにログインする

私はpython and Django ...の初心者です... Django forms(forms.py)を使用してログインフォームを作成する方法を知りたいです

20
Nikhil Verma

あなたのurls.py組み込みのDjangoログインビューへのファイルリンク、およびログインページとして使用するテンプレートへのパスを渡します。

(r'^login/$', 'Django.contrib.auth.views.login', {
    'template_name': 'myapp/login.html'
}),

そして、これが私のテンプレートがどのように見えるかの例です( Django docs から):

{% extends "mybase.html" %}

{% block content %}

    {% if form.errors %}
        <p>Your username and password didn't match. Please try again.</p>
    {% endif %}

    <form method="post" action="{% url 'Django.contrib.auth.views.login' %}">
        {% csrf_token %}
        <table>
            <tr>
                <td>{{ form.username.label_tag }}</td>
                <td>{{ form.username }}</td>
            </tr>
            <tr>
                <td>{{ form.password.label_tag }}</td>
                <td>{{ form.password }}</td>
            </tr>
       </table>

       <input type="submit" value="login" />
       <input type="hidden" name="next" value="{{ next }}" />
   </form>

{% endblock %}
26
Marcus Whybrow

はい、できます。実際には、独自のフォームを作成する必要はありません。 authモジュールを使用して、独自のログインテンプレートを作成するだけです。これを読んでください: http://docs.djangoproject.com/en/dev/topics/auth/

4
gruszczy